TWI614605B - 資料儲存裝置及其資料維護方法 - Google Patents

資料儲存裝置及其資料維護方法 Download PDF

Info

Publication number
TWI614605B
TWI614605B TW105110254A TW105110254A TWI614605B TW I614605 B TWI614605 B TW I614605B TW 105110254 A TW105110254 A TW 105110254A TW 105110254 A TW105110254 A TW 105110254A TW I614605 B TWI614605 B TW I614605B
Authority
TW
Taiwan
Prior art keywords
data
stage
blocks
spare
spare blocks
Prior art date
Application number
TW105110254A
Other languages
English (en)
Other versions
TW201734797A (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 TW105110254A priority Critical patent/TWI614605B/zh
Priority to CN201610587619.6A priority patent/CN107291377A/zh
Priority to US15/436,918 priority patent/US20170285953A1/en
Publication of TW201734797A publication Critical patent/TW201734797A/zh
Application granted granted Critical
Publication of TWI614605B publication Critical patent/TWI614605B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0626Reducing size or complexity of 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/0629Configuration or reconfiguration of 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/065Replication mechanisms
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本發明提供一種資料儲存裝置。快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊。控制器響應於用以將一資料寫入快閃記憶體之一寫入命令,將資料寫入單階備用區塊,其中當一既定條件滿足時,控制器每寫入三個單階備用區塊便將單階資料區塊中存在最久之三者整理至三階備用區塊中之一者。

Description

資料儲存裝置及其資料維護方法
本發明係關於一種資料儲存裝置之資料維護方法;特別係關於一種三階儲存單元的資料維護方法。
快閃記憶體為一種普遍的非揮發性資料儲存媒體,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等之儲存媒體。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。然而,儲存於浮置閘極之電荷會由於快閃記憶體之操作以及各種環境參數,自浮置閘極流失,造成資料保存(Data retention)之問題。其中,三階儲存單元(Triple-Level Cell,TLC)之快閃記憶體相較於其他快閃記憶體的寫入程序更為繁複。因此,如何有效地並且穩定的進行寫入程序是重要的課題。
本發明所提供之資料儲存裝置以及資料維護方法,可穩定的提供單階備用區塊並且同時將資料寫入單階備用 區塊。
本發明提供一種資料儲存裝置。快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊。控制器響應於用以將一資料寫入快閃記憶體之一寫入命令,將資料寫入單階備用區塊,其中當一既定條件滿足時,控制器每寫入三個單階備用區塊便將單階資料區塊中存在最久之三者整理至三階備用區塊中之一者。
在一實施例中,每當對等單階備用區塊中之一者進行寫入前,控制器判斷單階備用區塊之數量是否小於一既定值,並且當單階備用區塊之數量小於既定值時,既定條件被滿足。另外,當既定條件未滿足時,控制器連續將資料寫入單階備用區塊中。
又一實施例中,控制器在將單階資料區塊中存在最久之三者整理至三階備用區塊中之一者後,才將所寫入之資料的至少一邏輯位址映射至所寫入之單階備用區塊並將映射至邏輯位址之單階備用區塊定義為單階資料區塊。
另外,單階備用區塊係為不具有有效資料之單階區塊,單階資料區塊為具有有效資料之單階區塊,並且三階備用區塊為不具有有效資料之三階區塊。
本發明另提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊。控制器響應於用以將一資料寫入快閃記憶體之一寫入命令,將資料寫入單階備用區塊,其中當一既定條件滿足時,控制器先將資料中 之一第一部分寫入單階備用儲存區塊中之三個第一單階備用儲存區塊,並且在將資料中之其他部分寫入單階備用儲存區塊之其他者之前,自單階資料區塊中選擇所具有之有效資料存在最久之三個第一單階資料區塊,將第一單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第一單階資料區塊。
在一實施例中,在第一單階資料區塊被釋放後,控制器將第一部分之至少一邏輯位址映射至第一單階備用區塊,並將第一單階備用區塊定義為單階資料區塊中之三者。另外,在第一單階備用區塊被定義為單階資料區塊中之三者後,控制器先將資料中之一第二部分寫入單階備用儲存區塊中之三個第二單階備用儲存區塊,並且在將資料中之其他部分寫入單階備用儲存區塊之其他者之前,自單階資料區塊中選擇所具有之有效資料存在最久之三個第二單階資料區塊,將第二單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第二單階資料區塊。
本發明亦提供一種資料維護方法適用於具有一快閃記憶體之資料儲存裝置,其中快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊。資料維護方法包括:接收用以將一資料寫入快閃記憶體之一寫入命令;以及響應於寫入命令,將資料寫入單階備用區塊。將資料寫入單階備用區塊之步驟更包括:當一既定條件滿足時,每寫入三個單階備用區塊便將單階資料區塊中存在最久之三者整理至三階備用區塊中之一者。
在一實施例中,資料維護方法更包括每當對等單 階備用區塊中之一者進行寫入前,判斷單階備用區塊之數量是否小於一既定值,其中當單階備用區塊之數量小於既定值時,既定條件被滿足。將資料寫入單階備用區塊之步驟更包括當既定條件未滿足時,連續將資料寫入單階備用區塊中。另外,將資料寫入單階備用區塊之步驟更包括在將單階資料區塊中存在最久之三者整理至三階備用區塊中之一者後,將所寫入之資料的至少一邏輯位址映射至所寫入之單階備用區塊並將映射至邏輯位址之單階備用區塊定義為單階資料區塊。
本發明又提供一種資料維護方法,適用於具有一快閃記憶體之資料儲存裝置,其中快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊。資料維護方法包括:接收用以將一資料寫入快閃記憶體之一寫入命令;以及響應於寫入命令,將資料寫入單階備用區塊,其中當一既定條件滿足時,將資料寫入單階備用區塊之步驟更包括:將資料中之一第一部分寫入單階備用儲存區塊中之三個第一單階備用儲存區塊;以及在將資料中之其他部分寫入單階備用儲存區塊之其他者之前,自單階資料區塊中選擇所具有之有效資料存在最久之三個第一單階資料區塊,並且將第一單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第一單階資料區塊。
在一實施例中,當既定條件滿足時,將資料寫入單階備用區塊之步驟更包括:在第一單階資料區塊被釋放後,將第一部分之至少一邏輯位址映射至第一單階備用區塊,並將第一單階備用區塊定義為單階資料區塊中之三者。另外,當既 定條件滿足時,將資料寫入單階備用區塊之步驟更包括:在第一單階備用區塊被定義為單階資料區塊中之三者後,控制器先將資料中之一第二部分寫入單階備用儲存區塊中之三個第二單階備用儲存區塊;以及在將資料中之其他部分寫入單階備用儲存區塊之其他者之前,自單階資料區塊中選擇所具有之有效資料存在最久之三個第二單階資料區塊,並且將第二單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第二單階資料區塊。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
SLC_SP_POOL‧‧‧單階備用池
TLC_SP_POOL‧‧‧三階備用池
SLC_DA_POOL‧‧‧單階資料池
TLC_DA_POOL‧‧‧三階資料池
SLC_SP_1~SLC_SP_N‧‧‧單階備用區塊
SLC_DA_1~SLC_DA_P‧‧‧單階資料區塊
TLC_SP_1~TLC_SP_M‧‧‧三階備用區塊
TLC_DA_1~TLC_DA_Q‧‧‧三階資料區塊
S300~S320‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。
第3圖係本發明之一種實施例之資料維護方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機110所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資 料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180具有複數區塊,其中每一區塊具有複數頁面,其中快閃記憶體180係以頁面為最小單位進行寫入,並且以區塊為最小單位進行抹除。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。如第2圖所示,快閃記憶體180具有一單階備用池SLC_SP_POOL、一三階備用池TLC_SP_POOL、一單階資料池SLC_DA_POOL以及一三階資料池TLC_DA_POOL。單階備用池SLC_SP_POOL包括複數單階備用區塊(Single-Level Cell,SLC)SLC_SP_1~SLC_SP_N,其中N為單階備用池SLC_SP_POOL中單階備用區塊的數量,並且每一單階備用區塊SLC_SP_1~SLC_SP_N的大小等同於一個區塊的大小,但本發明不限於此。換言之,單階備用區塊SLC_SP_1~SLC_SP_N係為不具有有效資料之單階區塊,並且單階備用區塊SLC_SP_1~SLC_SP_N係用以以單階儲存模式寫入資料的區塊。值得注意的是,單階備用池SLC_SP_POOL中之單階備用區塊SLC_SP_1~SLC_SP_N被寫入有效資料後,則會被定義為單階資料區塊並且被分配到推到(PUSH)單階資料池SLC_DA_POOL中。單階資料池SLC_DA_POOL包括複數單階資料區塊(Single-Level Cell,SLC)SLC_DA_1~SLC_DA_P,其中P為單階資料池SLC_DA_POOL中之單階資料區塊的數量,並且每一單階資料區塊SLC_DA_1~SLC_DA_P的大小等同於一個 區塊的大小,但本發明不限於此。換言之,單階資料區塊SLC_DA_1~SLC_DA_P係為具有有效資料之單階區塊,並且單階資料區塊SLC_DA_1~SLC_DA_P中之有效資料係用以以三階儲存模式寫入三階備用區塊資料的區塊。值得注意的是,單階資料池SLC_DA_POOL中之單階資料區塊SLC_DA_1~SLC_DA_P中之有效資料被整理至三階備用區塊後,則會被定義為單階備用區塊並且被分配到推到(PUSH)單階備用池SLC_SO_POOL中。三階備用池TLC_SP_POOL包括複數三階備用區塊(Triple-Level Cell,TLC)TLC_SP_0~TLC_SP_M,其中M為三階備用池TLC_SP_POOL中三階備用區塊TLC_SP_0~TLC_SP_M的數量,並且每一三階備用區塊TLC_SP_0~TLC_SP_M的大小等同於一個區塊的大小。換言之,三階備用區塊TLC_SP_0~TLC_SP_M是不具有有效資料之三階區塊,並且三階備用區塊TLC_SP_0~TLC_SP_M係用以以三階儲存模式寫入資料的區塊。詳細而言,三階備用區塊TLC_SP_0~TLC_SP_M被寫入的資料為原本儲存於單階資料區塊的資料。值得注意的是,已被寫入有效資料之三階備用區塊TLC_SP_0~TLC_SP_M會被定義為三階資料區塊並且被推至三階資料池TLC_DA_POOL中。三階資料池TLC_DA_POOL包括複數三階資料區塊(Triple-Level Cell,SLC)TLC_DA_1~TLC_DA_Q,其中Q為三階資料池TLC_DA_POOL中之三階資料區塊的數量,並且每一三階資料區塊TLC_DA_1~TLC_DA_P的大小等同於一個區塊的大小,但本發明不限於此。換言之,三階資料區塊TLC_DA_1~TLC_DA_Q係為具有 有效資料之三階區塊,並且三階資料區塊TLC_DA_1~TLC_DA_Q。值得注意的是,三階資料池TLC_DA_POOL中之三階資料區塊TLC_DA_1~TLC_DA_Q被中之有效資料被無效後,則會被定義為三階備用區塊並且被分配到推到(PUSH)三階備用池TLC_SP_POOL中。
值得注意的是,當沒有任何資料被寫入快閃記憶體180時,三階資料池TLC_DA_POOL以及單階資料池SLC_DA_POOL中不具有任何三階資料區塊以及單階資料區塊。
另外,三階區塊(三階資料區塊TLC_DA_1~TLC_DA_Q以及三階備用區塊TLC_SP_1~TLC_SP_M)可儲存之資料量是單階區塊(單階資料區塊SLC_DA_1~SLC_DA_P以及單階備用區塊SLC_SP_1~SLC_SP_N)的三倍。詳細而言,三階區塊以及單階區塊皆是快閃記憶體180中之區塊,其物理構造是相同的。然而,三階區塊是藉由電壓對區塊進行多次整理(Program)來寫入資料,而單階區塊是藉由電壓對區塊進行一次整理(Program)來寫入資料。在一實施例中,三階區塊是藉由電壓對區塊進行三次整理(Program)來寫入資料。換言之,三個具有有效資料之單階資料區塊可整理為一個三階資料區塊。
由於單階區塊相較於三階區塊較為穩定,因此在本發明之實施例中,單階區塊(SLC)是用來作為預取空間(Cache),並且在單階區塊快被使用完時,才開始將單階資料區塊的資料整理至三階區塊中。一次將大量之單階資料區塊的資 料轉移到三階區塊,雖然可確保清出大量的單階備用區塊可使用。然而,控制器160卻會因為一次性大量的整理工作無法對寫入資料繼續進行處理,而造成寫入效能不穩定。因此,在本發明之一實施例中,控制器160可基於單階區塊以及三階區塊的特性,交替地執行寫入以及清除操作,以確保快閃記憶體180可穩定地提供可用的單階備用區塊也可以穩定地進行寫入工作。
詳細而言,當控制器160自主機120接收到用以將一資料寫入快閃記憶體180之一寫入命令時,控制器則響應於寫入命令將資料寫入單階備用區塊。另外,每當對等單階備用區塊中之一者進行寫入前,控制器160判斷單階備用區塊SLC_SP_1~SLC_SP_N之數量是否小於一既定值,以判斷一既定條件是否被滿足。當單階備用區塊SLC_SP_1~SLC_SP_N之數量小於既定值時,既定條件被滿足。當既定條件被滿足時,控制器160則開始進行清除單階資料區塊SLC_DA_1~SLC_DA_P。換言之,當既定條件被滿足時,控制器160每寫入三個單階備用區塊便將單階資料區塊SLC_DA_1~SLC_DA_P中存在最久之三者整理至三階備用區塊TLC_SP_1~TLC_SP_M中之一者。值得注意的是,在一實施例中,資料儲存裝置140具有一區塊維護表,用以紀錄在單階資料池SLC_DA_POOL中之每一單階資料區塊SLC_DA_1~SLC_DA_P中之有效資料存在的時間,但本發明不限於此。在其他實施例中,資料儲存裝置140可藉由其他方式記錄每一單階資料區塊SLC_DA_1~SLC_DA_P中之有效資料 存在的時間。另外,當既定條件未滿足時,控制器160則接著連續將資料寫入單階備用區塊中,並且在對每個單階備用區塊進行寫入前判斷是否滿足既定條件。在其他實施例中,既定條件可包括任何需要清理單階資料區塊之事件。
在一實施例中,控制器160係在將單階資料區塊中存在最久之三者整理至三階備用區塊TLC_SP_1~TLC_SP_M中之一者後,才將所寫入之資料的至少一邏輯位址映射至所寫入之單階備用區塊並將映射至邏輯位址之單階備用區塊定義為單階資料區塊。在突發的斷電事件或者其他中斷事件發生時,資料雖然已被寫入三階備用區塊中,但資料的鏈結還是保存在原本的單階資料區塊。因此,資料可保存在較穩定的單階區塊中。
舉例而言,當既定條件滿足時,控制器160先將資料中之一第一部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N中之三個第一單階備用儲存區塊。接著,在將資料中之其他部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N之其他者之前,控制器160自單階資料區塊SLC_DA_1~SLC_DA_P中選擇所具有之有效資料存在最久之三個第一單階資料區塊,並且將第一單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第一單階資料區塊,其中被釋放的第一單階資料區塊已失去與原資料的位址映射關係,並且被定義為單階備用區塊。接著,在第一單階資料區塊被釋放後,控制器160將第一部分之至少一邏輯位址映射至第一單階備用區塊,並將第一單階備用區塊定義為單階資料區塊 中之三者。
在第一單階備用區塊被定義為單階資料區塊中之三者後,控制器160接著先將資料中之一第二部分寫入單階備用儲存區塊中之三個第二單階備用儲存區塊。在將資料中之其他部分寫入單階備用儲存區塊之其他者之前,控制器160自單階資料區塊中選擇所具有之有效資料存在最久之三個第二單階資料區塊,將第二單階資料區塊中之資料整理至三階備用區塊中之一者以釋放第二單階資料區塊,其中被釋放的第二單階資料區塊已失去與原資料的位址映射關係,並且被定義為單階備用區塊。接著,在第二單階資料區塊被釋放後,控制器160將第二部分之至少一邏輯位址映射至第二單階備用區塊,並將第二單階備用區塊定義為單階資料區塊中之三者。接著,控制器160重複上述步驟直到資料之所有部分皆被寫入單階備用區塊中。另外,上述資料之第一部分以及第二部分的資料量,分別等於三個單階區塊的資料量。
第3圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140。流程開始於步驟S300。
在步驟S300中,控制器160自主機120接收到用以將一資料寫入快閃記憶體180之一寫入命令。在本實施例中,資料大於三個單階區塊的資料量,但本發明不限於此。
接著,在步驟S302中,控制器160判斷一既定條件是否滿足。在一實施例中,控制器160判斷單階備用區塊SLC_SP_1~SLC_SP_N之數量是否小於一既定值,以判斷一既 定條件是否被滿足。當單階備用區塊SLC_SP_1~SLC_SP_N之數量小於既定值時,既定條件被滿足。詳細而言,當既定條件被滿足時,流程進行至步驟S304以開始進行清除單階資料區塊SLC_DA_1~SLC_DA_P的操作。當既定條件未被滿足時,流程進行至步驟S314。在其他實施例中,既定條件可包括任何需要清理單階資料區塊之事件。
在步驟S304中,控制器160擷取資料中尚未被寫入單階備用區塊之一部分。詳細而言,控制器160接續著前一次所擷取的資料的部分,擷取資料中尚未被寫入單階備用區塊並且等同於三個單階區塊之資料量的一部分。當所剩餘之資料小於三個單階區塊時,控制器160則擷取所有剩餘之資料。
接著,在步驟S306中,控制器160將所擷取之資料的部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N中之三個第一單階備用儲存區塊。換言之,控制器160將在步驟S304中所擷取之資料的部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N中之三個單階備用儲存區塊。
接著,在步驟S308中,控制器160自單階資料區塊SLC_DA_1~SLC_DA_P中選擇所具有之有效資料存在最久之三個單階資料區塊。換言之,控制器160自單階資料區塊SLC_DA_1~SLC_DA_P中選取三個具有冷資料(Cold Data)的三個單階資料區塊。
接著,在步驟S310中,控制器160將所選擇之三個單階資料區塊中之資料整理至三階備用區塊中之一者以釋放所選擇之三個單階資料區塊,其中被釋放的三個單階資料區塊 已失去與原資料的位址映射關係,並且被定義為單階備用區塊。
接著,在步驟S312中,控制器160將所擷取之資料之部分的至少一邏輯位址映射至被寫入之單階備用區塊,並將被寫入單階備用區塊定義為單階資料區塊中之三者。換言之,控制器160將在步驟S304中所擷取之資料之部分的邏輯位址映射至在步驟S306被寫入之單階備用區塊,並將被寫入單階備用區塊定義為單階資料區塊中之三者。
在步驟S313中,控制器160判斷資料是否是全部寫入單階區塊中。當資料未全部寫入單階區塊時,流程回到步驟S304以繼續對資料進行寫入以及清除單階資料區塊。當資料已全部寫入單階區塊時,流程結束於步驟S313。值得注意的是,在另一實施例中,當資料未全部寫入單階區塊時,流程回到步驟S302,以繼續判斷既定條件是否被滿足。
在步驟S314中,控制器160擷取資料中尚未被寫入單階備用區塊之一部分。詳細而言,控制器160接續著前一次所擷取的資料的部分,擷取資料中尚未被寫入單階備用區塊並且等同於一個單階區塊之資料量的一部分。當所剩餘之資料小於一個單階區塊時,控制器160則擷取所有剩餘之資料。
在步驟S316中,控制器160將所擷取之資料的部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N中之一者。換言之,控制器160將在步驟S314中所擷取之資料的部分寫入單階備用儲存區塊SLC_SP_1~SLC_SP_N中之一者。
接著,在步驟S318中,控制器160將所擷取之資料 之部分的邏輯位址映射至被寫入之單階備用區塊,並將被寫入單階備用區塊定義為單階資料區塊中之一者。換言之,控制器160將在步驟S314中所擷取之資料之部分的邏輯位址映射至在步驟S316被寫入之單階備用區塊,並將被寫入單階備用區塊定義為單階資料區塊中之一者。
在步驟S320中,控制器160判斷資料是否是全部寫入單階區塊中。當資料未全部寫入單階區塊時,流程回到步驟S302。當資料已全部寫入單階區塊時,流程結束於步驟S320。
綜上所述,在步驟S304~S313中,控制器160每寫入三個單階備用區塊便將單階資料區塊SLC_DA_1~SLC_DA_P中存在最久之三者整理至三階備用區塊TLC_SP_1~TLC_SP_M中之一者。在步驟S314~S320中,控制器160則接著連續將資料寫入單階備用區塊中,並且在對每個單階備用區塊進行寫入前判斷是否滿足既定條件。
本發明所提供之資料儲存裝置以及資料維護方法,可穩定的提供單階備用區塊並且同時將資料寫入單階備用區塊。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載 入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體

Claims (18)

  1. 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊;以及一控制器,響應於用以將一資料寫入該快閃記憶體之一寫入命令,將該資料寫入該等單階備用區塊,其中當一既定條件滿足時,該控制器每寫入三個該等單階備用區塊便將該等單階資料區塊中存在最久之三者整理至該等三階備用區塊中之一者,其中每當對該等單階備用區塊中之一者進行寫入前,該控制器判斷該等單階備用區塊之數量是否小於一既定值,並且當該等單階備用區塊之數量小於該既定值時,該既定條件被滿足。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中當該既定條件未滿足時,該控制器連續將該資料寫入該等單階備用區塊中。
  3. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器在將該等單階資料區塊中存在最久之三者整理至該等三階備用區塊中之一者後,才將所寫入之該資料的至少一邏輯位址映射至所寫入之該等單階備用區塊並將映射至該邏輯位址之該等單階備用區塊定義為該等單階資料區塊。
  4. 根據申請專利範圍第1項之資料儲存裝置,其中該等單階備用區塊係為不具有有效資料之單階區塊,該等單階資料區塊為具有有效資料之單階區塊,並且該等三階備用區塊為不具有有效資料之三階區塊。
  5. 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊;以及一控制器,響應於用以將一資料寫入該快閃記憶體之一寫入命令,將該資料寫入該等單階備用區塊,其中當一既定條件滿足時,該控制器先將該資料中之一第一部分寫入該等單階備用區塊中之三個第一單階備用區塊,並且在將該資料中之其他部分寫入該等單階備用區塊之其他者之前,自該等單階資料區塊中選擇所具有之有效資料存在最久之三個第一單階資料區塊,將該等第一單階資料區塊中之資料整理至該等三階備用區塊中之一者以釋放該等第一單階資料區塊,其中每當對該等單階備用區塊中之一者進行寫入前,該控制器判斷該等單階備用區塊之數量是否小於一既定值,並且當該等單階備用區塊之數量小於該既定值時,該既定條件被滿足。
  6. 根據申請專利範圍第5項之資料儲存裝置,其中在該等第一單階資料區塊被釋放後,該控制器將該第一部分之至少一邏輯位址映射至該等第一單階備用區塊,並將該等第一單階備用區塊定義為該等單階資料區塊中之三者。
  7. 根據申請專利範圍第6項之資料儲存裝置,在該等第一單階備用區塊被定義為該等單階資料區塊中之三者後,該控制器先將該資料中之一第二部分寫入該等單階備用區塊中之三個第二單階備用區塊,並且在將該資料中之其他部分寫入該等單階備用區塊之其他者之前,自該等單階資料 區塊中選擇所具有之有效資料存在最久之三個第二單階資料區塊,將該等第二單階資料區塊中之資料整理至該等三階備用區塊中之一者以釋放該等第二單階資料區塊。
  8. 根據申請專利範圍第5項之資料儲存裝置,其中當該既定條件未滿足時,該控制器連續將該資料寫入該等單階備用區塊中。
  9. 根據申請專利範圍第5項之資料儲存裝置,其中該等單階備用區塊係為不具有有效資料之單階區塊,該等單階資料區塊為具有有效資料之單階區塊,並且該等三階備用區塊為不具有有效資料之三階區塊。
  10. 一種資料維護方法,適用於具有一快閃記憶體之資料儲存裝置,其中該快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊,該資料維護方法包括:接收用以將一資料寫入該快閃記憶體之一寫入命令;以及響應於該寫入命令,將該資料寫入該等單階備用區塊,其中將該資料寫入該等單階備用區塊之步驟更包括:當一既定條件滿足時,每寫入三個該等單階備用區塊便將該等單階資料區塊中存在最久之三者整理至該等三階備用區塊中之一者,其中每當對該等單階備用區塊中之一者進行寫入前,判斷該等單階備用區塊之數量是否小於一既定值,其中當該等單階備用區塊之數量小於該既定值時,該既定條件被滿足。
  11. 根據申請專利範圍第10項之資料維護方法,將該資料寫入該等單階備用區塊之步驟更包括當該既定條件未滿足時, 連續將該資料寫入該等單階備用區塊中。
  12. 根據申請專利範圍第10項之資料維護方法,將該資料寫入該等單階備用區塊之步驟更包括在將該等單階資料區塊中存在最久之三者整理至該等三階備用區塊中之一者後,將所寫入之該資料的至少一邏輯位址映射至所寫入之該等單階備用區塊並將映射至該邏輯位址之該等單階備用區塊定義為該等單階資料區塊。
  13. 根據申請專利範圍第10項之資料維護方法,其中該等單階備用區塊係為不具有有效資料之單階區塊,該等單階資料區塊為具有有效資料之單階區塊,並且該等三階備用區塊為不具有有效資料之三階區塊。
  14. 一種資料維護方法,適用於具有一快閃記憶體之資料儲存裝置,其中該快閃記憶體具有複數單階備用區塊、複數單階資料區塊以及複數三階備用區塊,該資料維護方法包括:接收用以將一資料寫入該快閃記憶體之一寫入命令;以及響應於該寫入命令,將該資料寫入該等單階備用區塊,其中當一既定條件滿足時,將該資料寫入該等單階備用區塊之步驟更包括:將該資料中之一第一部分寫入該等單階備用區塊中之三個第一單階備用區塊;以及在將該資料中之其他部分寫入該等單階備用區塊之其他者之前,自該等單階資料區塊中選擇所具有之有效資料存在最久之三個第一單階資料區塊,並且將該等第一單階資料區塊中之資料整理至該等三階備用區塊中之一者以釋放該 等第一單階資料區塊,其中每當對該等單階備用區塊中之一者進行寫入前,判斷該等單階備用區塊之數量是否小於一既定值,其中當該等單階備用區塊之數量小於該既定值時,該既定條件被滿足。
  15. 根據申請專利範圍第14項之資料維護方法,其中當該既定條件滿足時,將該資料寫入該等單階備用區塊之步驟更包括:在該等第一單階資料區塊被釋放後,將該第一部分之至少一邏輯位址映射至該等第一單階備用區塊,並將該等第一單階備用區塊定義為該等單階資料區塊中之三者。
  16. 根據申請專利範圍第15項之資料維護方法,當該既定條件滿足時,將該資料寫入該等單階備用區塊之步驟更包括:在該等第一單階備用區塊被定義為該等單階資料區塊中之三者後,先將該資料中之一第二部分寫入該等單階備用區塊中之三個第二單階備用區塊;以及在將該資料中之其他部分寫入該等單階備用區塊之其他者之前,自該等單階資料區塊中選擇所具有之有效資料存在最久之三個第二單階資料區塊,並且將該等第二單階資料區塊中之資料整理至該等三階備用區塊中之一者以釋放該等第二單階資料區塊。
  17. 根據申請專利範圍第14項之資料維護方法,當該既定條件未滿足時,將該資料寫入該等單階備用區塊之步驟更包括:連續將該資料寫入該等單階備用區塊中。
  18. 根據申請專利範圍第14項之資料維護方法,其中該等單階 備用區塊係為不具有有效資料之單階區塊,該等單階資料區塊為具有有效資料之單階區塊,並且該等三階備用區塊為不具有有效資料之三階區塊。
TW105110254A 2016-03-31 2016-03-31 資料儲存裝置及其資料維護方法 TWI614605B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105110254A TWI614605B (zh) 2016-03-31 2016-03-31 資料儲存裝置及其資料維護方法
CN201610587619.6A CN107291377A (zh) 2016-03-31 2016-07-25 数据储存装置及其数据维护方法
US15/436,918 US20170285953A1 (en) 2016-03-31 2017-02-20 Data Storage Device and Data Maintenance Method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105110254A TWI614605B (zh) 2016-03-31 2016-03-31 資料儲存裝置及其資料維護方法

Publications (2)

Publication Number Publication Date
TW201734797A TW201734797A (zh) 2017-10-01
TWI614605B true TWI614605B (zh) 2018-02-11

Family

ID=59958753

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105110254A TWI614605B (zh) 2016-03-31 2016-03-31 資料儲存裝置及其資料維護方法

Country Status (3)

Country Link
US (1) US20170285953A1 (zh)
CN (1) CN107291377A (zh)
TW (1) TWI614605B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
CN111949200A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储器及其控制方法和控制装置
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130311705A1 (en) * 2012-05-18 2013-11-21 Silicon Motion, Inc. Data storage device and method for flash block management
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統
TWI520153B (zh) * 2013-11-05 2016-02-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
TW201611034A (zh) * 2013-11-05 2016-03-16 威盛電子股份有限公司 非揮發性記憶體裝置的操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235441A1 (en) * 2007-03-20 2008-09-25 Itay Sherman Reducing power dissipation for solid state disks
US8725935B2 (en) * 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
JP5066241B2 (ja) * 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US8713380B2 (en) * 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
CN103455440A (zh) * 2012-06-04 2013-12-18 慧荣科技股份有限公司 快闪内存装置及快闪内存的数据存取方法
CN102789427B (zh) * 2012-07-17 2015-11-25 威盛电子股份有限公司 数据储存装置与其操作方法
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US20160225459A1 (en) * 2015-01-30 2016-08-04 Micron Technology, Inc. Apparatuses operable in multiple power modes and methods of operating the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130311705A1 (en) * 2012-05-18 2013-11-21 Silicon Motion, Inc. Data storage device and method for flash block management
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
TWI520153B (zh) * 2013-11-05 2016-02-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
TW201611034A (zh) * 2013-11-05 2016-03-16 威盛電子股份有限公司 非揮發性記憶體裝置的操作方法
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統

Also Published As

Publication number Publication date
CN107291377A (zh) 2017-10-24
TW201734797A (zh) 2017-10-01
US20170285953A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
TWI603193B (zh) 資料儲存裝置及其資料維護方法
TWI602116B (zh) 資料儲存裝置及其資料維護方法
TWI621129B (zh) 資料儲存裝置及其資料寫入方法
CN107526540B (zh) 数据储存装置及其数据维护方法
TW201933102A (zh) 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
TWI614605B (zh) 資料儲存裝置及其資料維護方法
TWI645290B (zh) 資料儲存裝置及其資料寫入方法
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI606339B (zh) 資料儲存裝置及其資料維護方法
US10013210B2 (en) Data storage device and data maintenance method thereof
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
CN104346292A (zh) 用来管理一记忆装置的方法、记忆装置与控制器
CN109426451A (zh) 将数据写入闪存模块的方法及相关闪存控制器与电子装置
CN103389881A (zh) 控制装置、存储装置以及数据写入方法
US20200073591A1 (en) Flash memory controller and associated accessing method and electronic device
CN109815158A (zh) 进行系统备份的方法、记忆装置及控制器、及电子装置
US20170139600A1 (en) Data storage device and data maintenance method thereof
TWI533128B (zh) 儲存裝置、電子裝置,以及燒錄記憶體的方法
TWI652572B (zh) 資料儲存裝置
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
TWI453747B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
TWI639946B (zh) 資料儲存裝置及其資料維護方法
TWI644250B (zh) 電子系統及其資料維護方法
CN105589810A (zh) 数据储存器件及其操作方法
JP2008046727A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法