TW201727472A - 資料儲存方法及其系統 - Google Patents

資料儲存方法及其系統 Download PDF

Info

Publication number
TW201727472A
TW201727472A TW105102973A TW105102973A TW201727472A TW 201727472 A TW201727472 A TW 201727472A TW 105102973 A TW105102973 A TW 105102973A TW 105102973 A TW105102973 A TW 105102973A TW 201727472 A TW201727472 A TW 201727472A
Authority
TW
Taiwan
Prior art keywords
logical
pages
valid
mapping relationship
page
Prior art date
Application number
TW105102973A
Other languages
English (en)
Other versions
TWI609323B (zh
Inventor
曹世強
簡廷芳
張安男
Original Assignee
捷鼎國際股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 捷鼎國際股份有限公司 filed Critical 捷鼎國際股份有限公司
Priority to TW105102973A priority Critical patent/TWI609323B/zh
Priority to US15/052,958 priority patent/US10073771B2/en
Publication of TW201727472A publication Critical patent/TW201727472A/zh
Application granted granted Critical
Publication of TWI609323B publication Critical patent/TWI609323B/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提出一種資料儲存方法及其系統,所述資料儲存方法包含配置一第一邏輯區塊及一第二邏輯區塊,第一邏輯區塊及第二邏輯區塊映射於實體區塊,第一邏輯區塊包含連續之多個第一邏輯頁面,第一邏輯頁面用以儲存邏輯位址,第二邏輯區塊包含連續之多個第二邏輯頁面、於執行垃圾收集時,根據有效位元將有效邏輯位址依據第二邏輯頁面的順序依序且連續地儲存於第二邏輯頁面、以及根據第一映射關係建立第二邏輯頁面與有效資料頁面之間之一對一對應之一第二映射關係。

Description

資料儲存方法及其系統
本發明是關於一種資料儲存方法,且特別是可應用於硬碟之資料儲存系統之資料儲存方法。
近年來,非揮發性儲存裝置發展蓬勃,例如固態硬碟,由於快閃記憶體之儲存能力、耗電量及記憶體之集積度相較於傳統硬碟均為較佳,使得快閃記憶體成為電子裝置中之儲存裝置之理想元件。
習知之快閃記憶體包含許多用來儲存資料之儲存區塊,每個儲存區塊係由許多儲存頁組合而成。快閃記憶體之儲存資料在經多次更新後,原先儲存於儲存頁中的舊資料成為無效資料,在此情形下,必須要進行垃圾收集(garbage collection)來將無效資料清除,以將無效資料佔據之儲存頁釋放。然而,儲存頁之寫入作業僅可將儲存區塊整個成功抹除後才能被寫入,而抹除一個儲存區塊所需的時間較寫入一個儲存頁的時間來的長,舉例來說,假設資料寫入儲存頁需耗時200微秒,而將儲存區塊抹除需耗時約2毫秒。因此,快閃記憶體之抹除作業大幅地降低其讀寫效能。
再者,在將儲存區塊進行抹除之前,必需先將儲存區塊中的有效資料搬移到快閃記憶體中的其他儲存頁,接著才可將欲儲存區塊進行抹除。由於快閃記憶體之每一儲存頁均有讀寫次數限制,將儲存資料搬移的過程中會造成額外的讀寫負擔,增加儲存頁的讀寫次數,如此便降低了快閃記憶體的可使用壽命。
有鑑於此,本發明提出一種資料儲存方法及其系統。
在一實施例中,一種資料儲存系統包含硬碟及處理單元。硬碟包含具多個實體頁面之一實體區塊,前述實體頁面儲存對應於多個邏輯位址之多個寫入資料,每一實體頁面對應於一有效位元,各實體頁面根據對應之有效位元為一第一值而區分為一有效資料頁面,或根據對應之有效位元為一第二值而區分為一無效資料頁面;處理單元係用以配置第一邏輯區塊及第二邏輯區塊,第一邏輯區塊及第二邏輯區塊映射於實體區塊,第一邏輯區塊包含連續之多個第一邏輯頁面,第二邏輯區塊包含連續之多個第二邏輯頁面,第一邏輯頁面用以儲存邏輯位址,邏輯位址包含多個映射於有效資料頁面之多個有效邏輯位址,且多個有效邏輯位址與多個有效資料頁面之間具有一對一對應之一第一映射關係,處理單元於執行垃圾收集時,根據有效位元將有效邏輯位址依據第二邏輯頁面的順序依序且連續地儲存於第二邏輯頁面,且處理單元根據第一映射關係建立第二邏輯頁面與有效資料頁面之間的一對一對應之一第二映射關係。
在一實施例中,一種資料儲存方法用以根據多個邏輯位址將多個寫入資料儲存於一硬碟之一實體區塊之多個實體頁面,每一實體頁面對應於一有效位元,各實體頁面根據對應之有效位元為一第一值而區分為一有效資料頁面,或根據對應之有效位元為一第二值而區分為一無效資料頁面,邏輯位址包含多個映射於有效資料頁面之多個有效邏輯位址,且多個有效邏輯位址與多個有效資料頁面之間具有一對一對應之一第一映射關係,前述之資料儲存方法包含:配置一第一邏輯區塊及一第二邏輯區塊,第一邏輯區塊及第二邏輯區塊映射於實體區塊,第一邏輯區塊包含連續之多個第一邏輯頁面,第一邏輯頁面用以儲存邏輯位址,第二邏輯區塊包含連續之多個第二邏輯頁面;於執行垃圾收集時,根據有效位元將有效邏輯位址依據第二邏輯頁面的順序依序且連續地儲存於第二邏輯頁面;及根據第一映射關係建立第二邏輯頁面與有效資料頁面之間之一對一對應之一第二映射關係。
綜上所述,根據本發明之資料儲存方法及其系統之一實施例係藉由配置映射於同一實體區塊之兩邏輯區塊來儲存邏輯位址,在執行垃圾收集時,將儲存於第一邏輯區塊之邏輯位址搬移至第二邏輯區塊來完成垃圾收集,而不需搬移實體區塊中的寫入資料,故可減少實體頁面之讀寫次數而增加快閃記憶體的使用壽命。
第1圖為根據本發明之資料儲存系統之一實施例之功能方塊圖。第2圖為第1圖之處理單元2所配置之第一邏輯區塊L1之一實施例之功能方塊圖。第3圖為第1圖之處理單元2所配置之第二邏輯區塊L2之一實施例之功能方塊圖。
請同時參照第1圖至第3圖,資料儲存系統包含硬碟1及處理單元2。處理單元2電性連接於硬碟1,以控制硬碟1之讀寫動作。硬碟1包含多個實體區塊,且每一實體區塊包含多個實體頁面。第1圖至第3圖係以硬碟1之實體區塊包含實體區塊11、12、13且實體區塊11包含五個實體頁面111~115為例。於此,處理單元2可將寫入資料儲存於實體頁面111~115中。
實體頁面111~115分別對應於有效位元V1~V5,以表示實體頁面111~115中所儲存的寫入資料是否有效。若實體頁面111~115所儲存的寫入資料為不再使用的舊資料則表示寫入資料為無效。其中,有效位元V1對應於實體頁面111而可表示實體頁面111所儲存的寫入資料為有效或無效,有效位元V2對應於實體頁面112而可表示實體頁面112所儲存的寫入資料為有效或無效,其餘則依此類推,不再贅述。基此,根據有效位元V1~V5之第一值及第二值,實體頁面111~115可區分為有效資料頁面及無效資料頁面,舉例來說,以前述之第一值為“1”且第二值為“0”為例,在此情形下,若對應於實體頁面111之有效位元V1為“0”,則表示實體頁面111為無效資料頁面,若對應於實體頁面114之有效位元V4為“1”,則表示實體頁面114為有效資料頁面。如此一來,有效位元V1~V5可表示實體頁面111~115是否包含無效資料而是否須被釋放。
在本實施例中,每一寫入資料係對應於一邏輯位址,而每一邏輯位址係映射於實體頁面111~115中之對應頁面,使處理單元2可根據邏輯位址將寫入資料儲存於對應之實體頁面111~115。以第2圖為例,四個邏輯位址分別為“10”、“20”、“30”及“10”且四個邏輯位址“10”、“20”、“30”及“10”分別映射於四個實體頁面111、112、113、114,使處理單元2可根據四個邏輯位址將對應之四筆寫入資料分別儲存於實體頁面111~114。其中,實體頁面111、114映射於相同邏輯位址“10”,若實體頁面114的寫入時間點晚於實體頁面111的寫入時間點,則實體頁面111為無效資料頁面,而其餘之實體頁面112、113、114則為有效資料頁面。基此,邏輯位址包含有效邏輯位址及無效邏輯位址,即映射於有效資料頁面之邏輯位址為有效邏輯位址,映射於無效資料頁面之邏輯位址為無效邏輯位址。並且,有效邏輯位址與有效資料頁面之間具有一對一對應之第一映射關係。如第2圖所示,第一邏輯頁面L11儲存之“10”為無效邏輯位址,第一邏輯頁面L12~L14儲存之“20”、“30” 及“10”為有效邏輯位址。有效邏輯位址之邏輯位址“20”一對一映射於有效資料頁面之實體頁面112,有效邏輯位址之邏輯位址“30”一對一映射於有效資料頁面之實體頁面113,且有效邏輯位址之邏輯位址“10”一對一映射於有效資料頁面之實體頁面114。在實作上,前述之邏輯位址可為來自輸出入(I/O)裝置之虛擬位址。
第3圖為第1圖之處理單元2所配置之第二邏輯區塊L2之一實施例之功能方塊圖。請同時參照第2圖及第3圖,處理單元2用以配置第一邏輯區塊L1及第二邏輯區塊L2,第一邏輯區塊L1包含連續之多個第一邏輯頁面,第二邏輯區塊L2包含連續之多個第二邏輯頁面,且第一邏輯區塊L1及第二邏輯區塊L2映射於硬碟1之同一實體區塊。如第2圖及第3圖所示,第一邏輯區塊L1及第二邏輯區塊L2均映射於實體區塊11,第一邏輯區塊L1包含連續之第一邏輯頁面L11~L15,第二邏輯區塊L2包含連續之第二邏輯頁面L21~L25。在本實施例中,第2圖及第3圖係以處理單元2配置兩邏輯區塊L1、L2映射於實體區塊11為例,然本發明不以此為限,處理單元2可配置多個邏輯區塊來映射於硬碟1之同一實體區塊,且處理單元2可配置多個邏輯區塊來映射於硬碟1之每一實體區塊。舉例來說,處理單元2可配置四個邏輯區塊映射於硬碟1之實體區塊12,並配置三個邏輯區塊映射於硬碟1之實體區塊13,使多個邏輯區塊映射於硬碟1之每一實體區塊。
第一邏輯區塊L1係用以儲存邏輯位址,處理單元2於執行寫入動作時,處理單元2將對應於每一寫入資料之邏輯位址依次地儲存於第一邏輯區塊L1。如第2圖所示,第一邏輯頁面L11~L14分別包含前述之第一邏輯位址“10”、“20”、“30”及“10”,處理單元2根據第一邏輯頁面L11~L14所儲存之邏輯位址將四筆寫入資料分別寫入對應之實體頁面111~114。於硬碟1之實體區塊11儲存多筆寫入資料之後,若硬碟1的可儲存空間低於臨界值,此時處理單元2開始執行垃圾收集,以釋放包含無效資料之無效資料頁面。首先,處理單元2根據有效位元V1~V5將有效邏輯位址依據第二邏輯頁面L21~L24的順序依序且連續地儲存於第二邏輯頁面L21~L24。詳言之,如第2圖所示,處理單元2根據有效位元V1~V5判斷出第一邏輯頁面L12~L14中的邏輯位址為有效邏輯位址;接著,如第3圖所示,處理單元2將第一邏輯頁面L12中之有效邏輯位址“20”儲存於第二邏輯頁面L21,且處理單元2將第一邏輯頁面L13中之有效邏輯位址“30”儲存於與第二邏輯頁面L21互為連續之第二邏輯頁面L22,最後,處理單元2將第一邏輯頁面L14中之有效邏輯位址“10”儲存於與第二邏輯頁面L22互為連續之第二邏輯頁面L23,如此便完成垃圾收集。於是,相較於第一邏輯區塊L1,第二邏輯區塊L2中並未包含任何對應於無效資料頁面之邏輯位址,使邏輯區塊L2中的空白頁面(即,第二邏輯頁面L24、L25)的數量大於第一邏輯區塊L1中的空白頁面(即,第一邏輯頁面L15)的數量。因此,相對於先前技術,處理單元2不需搬移實體區塊11中的寫入資料即可完成垃圾收集,故可減少硬碟1之讀寫次數而增加硬碟1的使用壽命。
在本實施例中,於處理單元2將有效邏輯位址“20”、“30”、“10”自第一邏輯區塊L1搬移至第二邏輯區塊L2之後,處理單元2根據前述之第一映射關係來建立第二邏輯頁面L21~23與有效資料頁面(即,實體頁面112、113、114)之間的一對一對應之一第二映射關係,使第二邏輯頁面L21、L22、L23分別一對一映射於實體頁面112、113、114,以使有效邏輯位址“20”、“30”、“10”可映射於原先存有對應之寫入資料之實體頁面112、113、114。
在實作上,處理單元2可以微處理器、微控制器、中央處理單元來實現,並可藉由軟體或韌體來控制處理單元2;或者處理單元亦可為特殊應用IC(Application-Specific IC;ASIC);處理單元2可在快取記憶體、或RAM中配置第一邏輯區塊L1及第二邏輯區塊L2,以儲存邏輯位址。
在一實施例中,處理單元2係將邏輯位址根據第一邏輯頁面L11~L15的順序依序地儲存於第一邏輯區塊L1中之連續頁面,以第2圖為例,處理單元2先將邏輯位址“10”儲存於第一邏輯頁面L11,接著,處理單元2將邏輯位址“20”儲存於與第一邏輯頁面L11互為連續之第一邏輯頁面L12,並且,處理單元2將邏輯位址“30”儲存於與第一邏輯頁面L12互為連續之第一邏輯頁面L13,最後,處理單元2將邏輯位址“10”儲存於與第一邏輯頁面L13互為連續之第一邏輯頁面L14。基此,在硬碟1之實體區塊11儲存前述之四筆寫入資料之後,第一邏輯區塊L1依其第一邏輯頁面L11~L14之順序依序包含四個邏輯位址,且四個邏輯位址分別映射於有效資料頁面及無效資料頁面。再者,第一邏輯頁面L11~L15與實體頁面111~115之間具有一對一對應之第三映射關係,使儲存於第一邏輯頁面L11~L15之有效邏輯位址與有效資料頁面之間根據第三映射關係而具有前述之第一映射關係。舉例來說,如第2圖所示,第一邏輯頁面L11、L12、L13、L14、L15分別映射於實體頁面111、112、113、114、115,在邏輯位址“10”、“20”、“30”及“10”儲存於第一邏輯頁面L11、L12、L13、L14之後,有效邏輯位址“20”、“30”及“10”即一對一映射於有效邏輯頁面112、113、114而具有前述之第一映射關係。
在一實施例中,於處理單元2將邏輯位址自第一邏輯區塊L1搬移至第二邏輯區塊L2之後,處理單元2建立第二邏輯區塊L2中之多個空白頁面與實體區塊11之無效資料頁面之間的一對一對應之一第四映射關係。以第3圖為例,第二邏輯區塊L2中之多個空白頁面為第二邏輯頁面L24、L25,處理單元2建立第二邏輯頁面L24、L25分別映射於無效資料頁面之實體頁面111、115之第四映射關係。於是,處理單元2在垃圾收集之後可將另一寫入資料例如第五筆及第六筆寫入資料對應之邏輯位址分別填入第二邏輯頁面L24、L25,使兩寫入資料根據前述之第四映射關係而儲存於對應之實體頁面111、115。基此,不論實體區塊11中之無效資料頁面為連續或不連續,在處理單元2執行垃圾收集後皆可用來儲存新的寫入資料而覆蓋原資料。
在一實施例中,在處理單元2未執行任何寫入動作之前,第一邏輯區塊L1與實體區塊11之第三映射關係可預先儲存於硬碟1或其他任何具儲存能力之電路中,使處理單元2可根據預存之第三映射關係將寫入資料根據邏輯位址於第一邏輯區塊L1中之頁面位置而儲存於對應之任一實體頁面111~115;在處理單元2對第一邏輯區塊L1進行垃圾收集之後,處理單元2儲存第二邏輯區塊L2與實體區塊11之間之第四映射關係來覆蓋已儲存之第三映射關係,使前述之另一寫入資料例如第五筆及第六筆寫入資料可根據其對應之邏輯位址於第二邏輯區塊L2中之頁面位置而儲存於對應之實體頁面111、115。基此,處理單元2在對第一邏輯區塊L1進行垃圾收集之後即不再使用第一邏輯區塊L1,而是藉由第二邏輯區塊L2使邏輯位址映射於實體區塊11。
根據前述之第二映射關係、第三映射關係及第四映射關係可以得知,第一邏輯頁面L11~L15係一對一映射於實體頁面111~115,且第二邏輯頁面L21~L25係一對一映射於實體頁面111~115,表示第一邏輯頁面L11~L15的數量與實體頁面111~115的數量相同,且第二邏輯頁面L21~L25的數量與實體頁面111~115的數量相同。於此,當處理單元2配置與硬碟1之每一實體區塊皆一對一對應之邏輯區塊時,由於每一邏輯區塊中之邏輯頁面的數量與每一實體區塊中之實體頁面的數量相同,因此,處理單元2可根據第一邏輯區塊L1中空白頁面的數量來判斷硬碟1的可儲存空間是否達到前述之臨界值,以決定是否對第一邏輯區塊L1執行垃圾收集。同理,處理單元2亦可根據第二邏輯區塊L2中空白頁面的數量來判斷硬碟1的可儲存空間是否達到前述之臨界值,以決定是否對第二邏輯區塊L2執行垃圾收集。
在一實施例中,為避免具資料儲存系統之電子裝置斷電而使邏輯位址無法映射至實體區塊11,在處理單元2執行垃圾收集之前,處理單元2可將第一映射關係及第三映射關係儲存於硬碟1中,使得前述之電腦裝置在復電後可自硬碟1讀取第一映射關係及第三映射關係,使處理單元2可將寫入資料根據第一映射關係及第三映射關係而儲存於硬碟1;再者,於執行垃圾收集之後,處理單元2可將第二映射關係及第四映射關係儲存於硬碟1中,以避免前述電子裝置斷電後造成邏輯位址無法映射至實體區塊11的問題。
第4圖為根據本發明之一實施例之資料儲存方法之流程圖。請同時參照第1圖至第4圖,處理單元2配置第一邏輯區塊L1及第二邏輯區塊L2(步驟S01),以第2圖及第3圖為例,第一邏輯區塊L1包含第一邏輯頁面L11~L15,第二邏輯區塊L2包含第二邏輯頁面L21~L25,第一邏輯頁面L11~L15及第二邏輯頁面L21~L25用以儲存對應於寫入資料之邏輯位址。接著,處理單元2判斷硬碟1是否需要進行垃圾收集(步驟S02),當硬碟1之可儲存空間小於或等於臨界值而需要進行垃圾收集時,處理單元2根據有效位元V1~V5將有效邏輯位址依據第二邏輯頁面L21~L25的順序依序且連續地儲存於第二邏輯頁面L21~L25(步驟S03),以完成垃圾收集。最後,處理單元2根據有效邏輯位址與有效資料頁面之間之第一映射關係來建立第二邏輯頁面L21~L25中包含有效邏輯位址之邏輯頁面與有效資料頁面之間之一對一對應之第二映射關係(步驟S04)。
在一實施例中,在處理單元未進行任何寫入動作之前,資料儲存方法更包含建立第一邏輯頁面L11~L15與實體頁面111~115之間之一對一對應之第三映射關係;接著,在處理單元2執行寫入動作時,處理單元2將邏輯位址依據第一邏輯頁面L11~L15的頁面順序依序且連續地儲存於第一邏輯頁面L11~L15,使有效邏輯位址(即,第一邏輯頁面L12~14所儲存之邏輯位址)與有效資料頁面(即前述之實體頁面112~114)之間依據第三映射關係而具有第一映射關係。
在一實施例中,於執行步驟S04之後,處理單元2建立第二邏輯頁面L21~L25中之空白頁面(即,第二邏輯頁面L24、L25)與無效資料頁面(實體頁面111、115)之間的一對一對應之一第四映射關係,使前述之第五筆寫入資料與第六筆寫入資料可根據第二邏輯頁面L24、L25中之邏輯位址而儲存於實體頁面111、115。
在一實施例中,於執行步驟S03之前,處理單元2將第一映射關係及第三映射關係儲存於硬碟1中,以避免邏輯位址因資料儲存系統斷電而無法映射至實體頁面111~115的問題。同理,於執行步驟S03之後,處理單元2將第二映射關係及第四映射關係儲存於硬碟1中,以避免邏輯位址因資料儲存系統斷電而無法映射至實體頁面111~115的問題。
綜上所述,根據本發明之資料儲存方法及其系統之一實施例係藉由配置映射於同一實體區塊之兩邏輯區塊來儲存邏輯位址,在執行垃圾收集時,將儲存於第一邏輯區塊之邏輯位址搬移至第二邏輯區塊來完成垃圾收集,而不需搬移實體區塊中的寫入資料,故可減少實體頁面之讀寫次數而增加快閃記憶體的使用壽命。
雖然本發明已以實施例揭露如上然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之專利申請範圍所界定者為準。
1‧‧‧硬碟
11、12、13‧‧‧實體區塊
111~115‧‧‧實體頁面
2‧‧‧處理單元
L1‧‧‧第一邏輯區塊
L11~L15‧‧‧第一邏輯頁面
L2‧‧‧第二邏輯區塊
L21~L25‧‧‧第二邏輯頁面
V1~V5‧‧‧有效位元
10、20、30‧‧‧邏輯位址
步驟S01‧‧‧配置第一邏輯區塊及第二邏輯區塊
步驟S02‧‧‧判斷是否需要進行垃圾收集
步驟S03‧‧‧根據有效位元將有效邏輯位址依據第二邏輯頁面的順序依序且連續地儲存於第二邏輯頁面
步驟S04‧‧‧根據第一映射關係建立第二邏輯頁面與有效資料頁面之間之一對一對應之第二映射關係
[第1圖] 為根據本發明之資料儲存系統之一實施例之功能方塊圖。 [第2圖] 為第1圖之處理單元所配置之第一邏輯區塊之一實施例之功能方塊圖。 [第3圖] 為第1圖之處理單元所配置之第二邏輯區塊之一實施例之功能方塊圖。 [第4圖] 為根據本發明之資料儲存方法之一實施例之流程圖。
1‧‧‧硬碟
11、12、13‧‧‧實體區塊
111~115‧‧‧實體頁面
2‧‧‧處理單元
L2‧‧‧第二邏輯區塊
L21~L25‧‧‧第二邏輯頁面
V1~V5‧‧‧有效位元
10、20、30‧‧‧邏輯位址

Claims (12)

  1. 一種資料儲存系統,包含: 一硬碟,包含一實體區塊,該實體區塊包含多個實體頁面,該些實體頁面儲存對應於多個邏輯位址之多個寫入資料,每一該實體頁面對應於一有效位元,各該實體頁面根據對應之該有效位元為一第一值而區分為一有效資料頁面,或根據對應之該有效位元為一第二值而區分為一無效資料頁面;及 一處理單元,用以配置一第一邏輯區塊及一第二邏輯區塊,該第一邏輯區塊及該第二邏輯區塊映射於該實體區塊,該第一邏輯區塊包含連續之多個第一邏輯頁面,該第二邏輯區塊包含連續之多個第二邏輯頁面,該些第一邏輯頁面用以儲存該些邏輯位址,該些邏輯位址包含多個映射於該些有效資料頁面之多個有效邏輯位址,且該些有效邏輯位址與該些有效資料頁面之間具有一對一對應之一第一映射關係,該處理單元於執行垃圾收集時,根據該些有效位元將該些有效邏輯位址依據該些第二邏輯頁面的順序依序且連續地儲存於該些第二邏輯頁面,且該處理單元根據該第一映射關係建立該些第二邏輯頁面與該些有效資料頁面之間的一對一對應之一第二映射關係。
  2. 如請求項1所述之資料儲存系統,其中該些第一邏輯頁面與該些實體頁面之間具有一對一對應之一第三映射關係,該處理單元將該些邏輯位址依據該些第一邏輯頁面的順序依序且連續地儲存於該些第一邏輯頁面,使該些有效邏輯位址與該些有效資料頁面之間依據該第三映射關係而具有該第一映射關係。
  3. 如請求項2所述之資料儲存系統,其中該處理單元於執行垃圾收集後更建立該些第二邏輯區塊中之多個空白頁面與該些無效資料頁面之間的一對一對應之一第四映射關係。
  4. 如請求項3所述之資料儲存系統,其中,於該些邏輯位址儲存於該些第一邏輯頁面之前,該處理單元儲存該第三映射關係,使該些邏輯位址於儲存於該些第一邏輯頁面之後建立該些有效邏輯位址與該些有效資料頁面之間之該第一映射關係,於執行垃圾收集之後,該處理單元儲存該第四映射關係以覆蓋該第三映射關係。
  5. 如請求項2或4所述之資料儲存系統,其中該些無效資料頁面之間為不連續。
  6. 如請求項3所述之資料儲存系統,其中,於執行垃圾收集之前,該處理單元將該第一映射關係及該第三映射關係儲存於該硬碟中,於執行垃圾收集之後,該處理單元將該第二映射關係及該第四映射關係儲存於該硬碟中。
  7. 一種資料儲存方法,用以根據多個邏輯位址將多個寫入資料儲存於一硬碟之一實體區塊之多個實體頁面,每一該實體頁面對應於一有效位元,各該實體頁面根據對應之該有效位元為一第一值而區分為一有效資料頁面,或根據對應之該有效位元為一第二值而區分為一無效資料頁面,該些邏輯位址包含多個映射於該些有效資料頁面之多個有效邏輯位址,且該些有效邏輯位址與該些有效資料頁面之間具有一對一對應之一第一映射關係,該資料儲存方法包含: 配置一第一邏輯區塊及一第二邏輯區塊,該第一邏輯區塊及該第二邏輯區塊映射於該實體區塊,該第一邏輯區塊包含連續之多個第一邏輯頁面,該些第一邏輯頁面用以儲存該些邏輯位址,該第二邏輯區塊包含連續之多個第二邏輯頁面; 於執行垃圾收集時,根據該些有效位元將該些有效邏輯位址依據該些第二邏輯頁面的順序依序且連續地儲存於該些第二邏輯頁面;及 根據該第一映射關係建立該些第二邏輯頁面與該些有效資料頁面之間之一對一對應之一第二映射關係。
  8. 如請求項7所述之資料儲存方法,更包含建立該些第一邏輯頁面與該些實體頁面之間一對一對應之一第三映射關係;將該些邏輯位址依據該些第一邏輯頁面的順序依序且連續地儲存於該些第一邏輯頁面,使該些有效邏輯位址與該些有效資料頁面之間依據該第三映射關係而具有該第一映射關係。
  9. 如請求項8所述之資料儲存方法,其中,於執行垃圾收集之步驟之後,該資料儲存方法更包含:建立該些第二邏輯頁面中之多個空白頁面與該些無效資料頁面之間的一對一對應之一第四映射關係。
  10. 如請求項9所述之資料儲存方法,其中,於執行將該些邏輯位址依據該些第一邏輯頁面的順序依序且連續地儲存於該些第一邏輯頁面之步驟之前,更包含儲存該第三映射關係,使該些邏輯位址於儲存於該些第一邏輯頁面之後建立該些有效邏輯位址與該些有效資料頁面之間之該第一映射關係;於執行垃圾收集之步驟之後,更包含儲存該第四映射關係以覆蓋該第三映射關係。
  11. 如請求項7所述之資料儲存方法,其中該些空白頁面之間為不連續。
  12. 如請求項9或10所述之資料儲存方法,其中,於執行垃圾收集之步驟之前,更包含:將該第一映射關係及該第三映射關係儲存於該硬碟中;於執行垃圾收集之步驟之後,將該第二映射關係及該第四映射關係儲存於該硬碟中。
TW105102973A 2016-01-29 2016-01-29 資料儲存方法及其系統 TWI609323B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105102973A TWI609323B (zh) 2016-01-29 2016-01-29 資料儲存方法及其系統
US15/052,958 US10073771B2 (en) 2016-01-29 2016-02-25 Data storage method and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105102973A TWI609323B (zh) 2016-01-29 2016-01-29 資料儲存方法及其系統

Publications (2)

Publication Number Publication Date
TW201727472A true TW201727472A (zh) 2017-08-01
TWI609323B TWI609323B (zh) 2017-12-21

Family

ID=59386748

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105102973A TWI609323B (zh) 2016-01-29 2016-01-29 資料儲存方法及其系統

Country Status (2)

Country Link
US (1) US10073771B2 (zh)
TW (1) TWI609323B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9851926B2 (en) * 2015-06-02 2017-12-26 Quantum Corporation Log structured block device for hard disk drive
KR20180040769A (ko) * 2016-10-12 2018-04-23 삼성전자주식회사 저장 장치 및 그것의 동작 방법
WO2019113820A1 (en) 2017-12-13 2019-06-20 Micron Technology, Inc. Synchronizing nand logical-to-physical table region tracking
TWI670594B (zh) * 2018-01-18 2019-09-01 慧榮科技股份有限公司 資料儲存裝置
KR20200020464A (ko) * 2018-08-17 2020-02-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN110895513A (zh) * 2018-09-12 2020-03-20 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
TWI749279B (zh) * 2018-12-18 2021-12-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11669515B2 (en) 2020-10-28 2023-06-06 Accelstor Technologies Ltd Data access system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
WO2007081598A2 (en) * 2005-10-27 2007-07-19 Sandisk Corporation Adaptive handling data writes in non-volatile memories
TWI413931B (zh) * 2009-01-15 2013-11-01 Phison Electronics Corp 快閃記憶體資料之存取方法及其儲存系統與控制系統
US8335907B2 (en) * 2009-12-30 2012-12-18 Sandisk Technologies Inc. Micro-update architecture for address tables
US8966205B1 (en) * 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US9146857B2 (en) * 2012-08-18 2015-09-29 Storart Technology Co. Ltd. Method for mapping management
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US20140328127A1 (en) * 2013-05-02 2014-11-06 Skymedi Corporation Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI515735B (zh) * 2013-12-09 2016-01-01 群聯電子股份有限公司 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置

Also Published As

Publication number Publication date
US20170220462A1 (en) 2017-08-03
US10073771B2 (en) 2018-09-11
TWI609323B (zh) 2017-12-21

Similar Documents

Publication Publication Date Title
TWI609323B (zh) 資料儲存方法及其系統
US9645894B2 (en) Data storage device and flash memory control method
US7487303B2 (en) Flash memory device and associated data merge method
US7761652B2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
JP4933267B2 (ja) 大きな消去ブロックを有する不揮発性メモリシステムの管理
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
KR100946286B1 (ko) 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
JP5480913B2 (ja) 記憶装置、およびメモリコントローラ
KR101301840B1 (ko) 비휘발성 메모리 장치의 데이터 처리 방법
US20130151892A1 (en) Data storing method for solid state drive to preserve data integrity after power failure
CN106802867B (zh) 固态储存装置及其数据编程方法
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP2008527586A (ja) オンチップデータのグループ化および整列
JPWO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
WO2011118114A1 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2005339231A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US7899974B2 (en) Nonvolatile memory, mapping control apparatus and method of the same
CN107025062B (zh) 数据储存方法及其系统
US11182286B2 (en) Data storage device and control method for non-volatile memory
TWI747532B (zh) 記憶體裝置
JP5631486B2 (ja) Nandメモリのブロックベースファイルシステムへログベースバファリングを用いて書き込む方法