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

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

Info

Publication number
TW201833755A
TW201833755A TW106107358A TW106107358A TW201833755A TW 201833755 A TW201833755 A TW 201833755A TW 106107358 A TW106107358 A TW 106107358A TW 106107358 A TW106107358 A TW 106107358A TW 201833755 A TW201833755 A TW 201833755A
Authority
TW
Taiwan
Prior art keywords
data
program
read
maintenance
time
Prior art date
Application number
TW106107358A
Other languages
English (en)
Other versions
TWI602116B (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 TW106107358A priority Critical patent/TWI602116B/zh
Priority to CN201710281073.6A priority patent/CN108572791B/zh
Application granted granted Critical
Publication of TWI602116B publication Critical patent/TWI602116B/zh
Priority to US15/863,889 priority patent/US10296231B2/en
Publication of TW201833755A publication Critical patent/TW201833755A/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

本發明提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。控制器自一主機接收用以讀取一資料之一讀取命令,分析讀取命令所需之複數讀取作業,以及根據讀取命令之一輸入/輸出延遲時間以及讀取作業的數量,決定每一讀取作業之一作業時間,其中在讀取作業之一第一讀取作業中,控制器自快閃記憶體讀取資料之一部分,將部分傳送給主機,並且根據一既定條件執行一第一維護程序,其中既定條件包括一剩餘時間,並且剩餘時間為作業時間減去第一讀取作業已花費之時間。

Description

資料儲存裝置及其資料維護方法
本發明係關於一種記憶體裝置之資料維護方法;特別係關於一種在讀取程序中之資料維護方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),各區塊包括複數頁(pages),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。但浮置閘極所捕捉之電荷的能力可能會因為時間、環境以及使用程度損壞。因此,快閃記憶體需要時常對資料進行維護。然而,資料維護會造成程序時間上的延遲,造成使用者感受到不順暢的操作。
本發明提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。控制器自一主機接收用以讀取一資料之一讀取命令,分析讀取命令所需之複數讀取作業,以 及根據讀取命令之一輸入/輸出延遲時間以及讀取作業的數量,決定每一讀取作業之一作業時間,其中在讀取作業之一第一讀取作業中,控制器自快閃記憶體讀取資料之一部分,將部分傳送給主機,並且根據一既定條件執行一第一維護程序,其中既定條件包括一剩餘時間,並且剩餘時間為作業時間減去第一讀取作業已花費之時間。
在一實施例中,作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值,並且作業時間小於一資料子集讀出時間。在另一實施例中,作業時間隨著讀取作業的執行順序而遞減,並且每一作業時間小於一資料子集讀出時間。
另外,控制器更用以在將所讀取之部分傳送給主機後,決定複數維護程序,其中維護程序係用以維護快閃記憶體中之資料。在一實施例中,維護程序包括一耗損平均程序、一讀取回收程序、一更新程序以及一資料集中程序。當快閃記憶體之區塊中最小之抹除次數與最大之抹除次數的差大於一既定差值時,控制器判斷維護程序包括一耗損平均程序。當快閃記憶體中之資料的錯誤位元數大於一既定錯誤位元數時,控制器判斷維護程序包括一讀取回收程序。當快閃記憶體中之資料的讀取次數大於一既定讀取次數時,控制器判斷維護程序包括一更新程序。當區塊中之三階備用區塊的數量小於一既定區塊數量時,控制器判斷維護程序包括一資料集中程序。
在一實施例中,在第一讀取作業中,控制器係根據既定條件,在維護程序中選擇一者作為第一維護程序,其中既定條件更包括維護程序之優先權。舉例而言,讀取回收程序 之優先權大於資料集中程序,資料集中程序之優先權大於更新程序,並且更新程序之優先權大於耗損平均程序。
在另一實施例中,在第一讀取作業中,控制器更用以在第一維護程序結束後,判斷剩餘時間是否超過一既定值,當剩餘時間超過既定值時,根據既定條件,選擇尚未執行之維護程序中之一第二維護程序,並且執行第二維護程序。當剩餘時間小於既定值時,結束第一讀取作業,以執行讀取作業中之一第二讀取作業。
本發明亦提供一種資料維護方法,適用於具有一快閃記憶體之一資料儲存裝置。資料維護方法包括:自一主機接收用以讀取一資料之一讀取命令;分析讀取命令所需之複數讀取作業;以及根據讀取命令之一輸入/輸出延遲時間以及讀取作業的數量,決定每一讀取作業之一作業時間。讀取作業之一第一讀取作業包括:自快閃記憶體讀取資料之一部分;將部分傳送給主機;以及根據一既定條件執行一第一維護程序,其中既定條件包括一剩餘時間,並且剩餘時間為作業時間減去第一讀取作業已花費之時間。
在一實施例中,作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值,並且作業時間小於一資料子集讀出時間。在另一實施例中,作業時間隨著讀取作業的執行順序而遞減,並且每一作業時間小於一資料子集讀出時間。
另外,第一讀取作業更包括:在將所讀取之部分傳送給主機後,決定複數維護程序;以及根據既定條件,在維護程序中選擇一者作為第一維護程序。其中,維護程序係用以維 護快閃記憶體中之資料,並且維護程序包括一耗損平均程序、一讀取回收程序、一更新程序以及一資料集中程序。決定維護程序的步驟更包括:當區塊中最小之抹除次數與最大之抹除次數的差大於一既定差值時,判斷維護程序包括一耗損平均程序;當快閃記憶體中之資料的錯誤位元數大於一既定錯誤位元數時,判斷維護程序包括一讀取回收程序;當快閃記憶體中之資料的讀取次數大於一既定讀取次數時,判斷維護程序包括一更新程序;以及當區塊中之三階備用區塊的數量小於一既定區塊數量時,判斷維護程序包括一資料集中程序。
在一實施例中,既定條件更包括維護程序之優先權,其中讀取回收程序之優先權大於資料集中程序,資料集中程序之優先權大於更新程序,並且更新程序之優先權大於耗損平均程序。
另外,第一讀取作業更包括:在第一維護程序結束後,判斷剩餘時間是否超過一既定值;當剩餘時間超過既定值時,根據既定條件,選擇尚未執行之維護程序中之一第二維護程序;以及當剩餘時間小於既定值時,結束第一讀取作業,以執行讀取作業中之一第二讀取作業。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
S200~S220‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2A及2B圖係本發明之一種實施例之資料維護方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機120所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。舉例而言,控制器160可執行讀取作業以及維護程序。
快閃記憶體180包括複數區塊,每一區塊包括複數頁面。值得注意的是,快閃記憶體180以區塊為最小單位進行抹除,並且頁面為最小單位進行寫入。值得注意的是,快閃記憶體180中之區塊具有不同之屬性,其中區塊可分為單階區塊(Single-Level Cell block,SLC block)以及三階區塊(Triple-Level Cell Block,TLC block),但本發明不限於此。在其他實施例中,區塊可僅有三階區塊,而沒有單階區塊。三階區塊以及單階區塊是使用不同的程式化(program)方式將資料進行寫入,並且三階區塊的資料容量為單階區塊的三倍,其中 具有有效資料之單階區塊為單階資料區塊,不具有又效資料且沒有損壞之單階區塊為單階備用區塊。具有有效資料之三階區塊為三階資料區塊,不具有又效資料且沒有損壞之三階區塊為三階備用區塊。在一實施例中,使用者的資料會被存入三階區塊中。另外,使用者可藉由主機120將資料自快閃記憶體180中讀出。
在一實施例中,當控制器160自主機120接收到一讀取命令時,控制器160必須在一輸入/輸出延遲時間(I/O latency)內,將讀取命令所指定之資料自快閃記憶體180中讀出,並且將所讀出之資料全部傳送至主機120。換言之,控制器160必須在輸入/輸出延遲時間內將讀取命令執行完畢。舉例而言,輸入/輸出延遲時間可為2秒,但本發明不限於此。在其他實施例中,輸入/輸出延遲時間可為電路設計者或者規格制定者所設定之其他時間。另外,當讀取命令所指定之資料超過快閃記憶體180之一讀取單位時,讀取命令所指定之資料會被分為數個資料段陸續傳送給主機120,其中讀取單位可為一個頁面之資料量或者一既定長度,本發明不限於此。舉例而言,若讀取命令所指定之資料總共有96K位元組並且快閃記憶體180之讀取單位為32K位元組時,控制器160會對先讀取資料中具有32K位元組之一第一資料段,並在第一資料段傳送至主機120後,接著讀取剩餘資料中具有32K位元組之一第二資料段,最後在第二資料段傳送至主機120後,讀取所剩餘之具有32K位元組之一第三資料段並將第三資料段傳送至主機120。在一實施例中,每個資料段的讀取作業必須在一資料子集讀出時間 (Read time-out time)內完成。換言之,對第一資料段、第二資料段以及第三資料段進行讀取的讀取作業,從自快閃記憶體180讀出資料段開始到讀取下一個資料段的時間必須少於資料子集讀出時間。舉例而言,資料子集讀出時間可為100毫秒,但本發明不限於此。在其他實施例中,資料子集讀出時間可為廠商、電路設計者或者規格制定者所設定之其他時間。
除了滿足工作時間(輸入/輸出延遲時間以及資料子集讀出時間)的限制,為了避免快閃記憶體180中之資料損壞以及妥善利用快閃記憶體180中之記憶體空間,控制器160亦會在適當的時間,根據讀取次數、抹除次數、錯誤位元數以及三階備用區塊的數量,對快閃記憶體180進行資料維護程序。在一實施例中,快閃記憶體180更可用以儲存至少一參數表用以分別紀錄每一頁面之讀取次數、每一區塊的抹除次數、每一頁面中之資料的錯誤位元以/或快閃記憶體180中三階備用區塊的數量,但本發明不限於此。在其他實施例中,每一頁面之讀取次數以及每一區塊的抹除次數亦可儲存於相應的區塊或者頁面內,其中讀取次數為區塊曾經被讀取過的次數,抹除次數為區塊曾經被抹除的次數。另外,控制器160可藉由讀取快閃記憶體180之資料,並將所讀取之資料與校驗碼進行比對演算來獲得每一頁中之資料的錯誤位元數。在一實施例中,控制器160會在接收到讀取命令後,在讀取命令執行時同時進行資料維護程序。然而,若資料維護程序執行的時間太長,則會超過規格及/或廠商所限制之工作時間(輸入/輸出延遲時間以及資料子集讀出時間),並且造成使用者的使用感覺不佳。
有鑑於此,當接收到讀取命令時,控制器160會進入讀取狀態,並且在讀取狀態中會進入到背景工作狀態(eMMC background operations,BKOPS)來執行資料維護程序,其中控制器160更用以根據計時器(GC timer)來記錄已消耗的時間,並且根據所剩餘的時間動態調整維護程序。
詳細而言,自主機120接收用以讀取一資料之一讀取命令後,控制器160分析該讀取命令所需之複數讀取作業,其中每一讀取作業用以讀取快閃記憶體180之一個讀取單位的資料或者相應於讀取命令中一個邏輯位址(LBA)的資料。換言之,在接收到讀取命令後,控制器160根據讀取命令所指示之資料的長度以及位址,分析出所需要執行之讀取作業的數量、每一讀取作業的資料位址與長度以及相關的指令。接著,控制器160根據該讀取命令之一輸入/輸出延遲時間(I/O latency)以及讀取作業的數量,決定每一讀取作業之作業時間。在一實施例中,作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值,並且作業時間小必須於資料子集讀出時間。換言之,每一讀取作業之作業時間都相同,若作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值大於資料子集讀出時間時,作業時間等於資料子集讀出時間,但本發明不限於此。在另一實施例中,作業時間隨著讀取作業的執行順序而遞減,並且每一作業時間小於一資料子集讀出時間。換言之,作業時間可具有預設之複數個值,控制器160會根據讀取作業的數量以及輸入/輸出延遲時間等,將具有較長時間的作業時間分配給先執行之讀取作業,並將具有較短時間的作業時間分配 給後面執行的讀取作業。如上所述,藉由預先決定每一讀取作業之作業時間,控制器160可控制維護程序在所決定之作業時間內執行完畢,以避免上述超過規格及/或廠商所限制之工作時間(輸入/輸出延遲時間以及資料子集讀出時間)以及造成使用者的使用感覺不佳的問題。
然而,控制器160亦必須使用特定之規則來控制維護程序在所決定之作業時間內執行完畢。在一實施例中,控制器160是根據所剩餘之作業時間及/或維護程序之重要程度,在所需執行之維護程序中選擇執行適合之維護程序,以達到控制維護程序在所決定之作業時間內執行完畢的目的。詳細而言,在讀取作業中之一第一讀取作業中,控制器160先自快閃記憶體180讀取所接收之讀取命令所指定的資料之一部分,並將所讀取之部分傳送給主機120。在將所讀取之資料的部分傳送給主機120後,控制器160更用以決定目前快閃記憶體180所需之複數維護程序,其中維護程序係用以維護快閃記憶體180中之資料。
在一實施例中,維護程序之種類包括耗損平均程序、讀取回收程序、更新程序以及資料集中程序。
當區塊中最小之抹除次數與最大之抹除次數的差大於一既定差值時,控制器160判斷所需的維護程序包括一耗損平均程序(wear-leveling)。換言之,當快閃記憶體180中具有最大抹除次數之區塊以及具有最小抹除次數之區塊的抹除次數差異大於既定差值時,控制器160需要藉由耗損平需程序來降低抹除次數的差異。在一實施例中,既定差值為50,但本發 明不限於此。在其他實施例中,既定差值亦可為電路設計者所制定之其他數值。
當快閃記憶體180中之資料的錯誤位元數大於一既定錯誤位元數時,控制器160判斷所需的維護程序包括一讀取回收程序(read reclaim)。換言之,當控制器160在讀取資料的過程中,發現快閃記憶體180中之至少一頁面的錯誤位元大於既定錯誤位元數時,控制器160則可藉由讀取回收程序,來將錯誤位元過高的資料搬移至其他頁面或者區塊,以避免資料損毀。
當快閃記憶體180中之資料的讀取次數大於一既定讀取次數時,控制器160判斷所需的維護程序包括一更新程序(read refresh)。換言之,當控制器160發現快閃記憶體180中任一頁面的讀取次數大於既定讀取次數時,控制器160則可藉由更新程序,來將讀取次數過高的資料搬移至其他頁面或者區塊,以避免資料損毀。
當區塊中之三階備用區塊的數量小於一既定區塊數量時,控制器160判斷所需之維護程序包括一資料集中程序。換言之,當快閃記憶體180中可以寫入使用者資料之三階備用區塊數量小於既定區塊數量時,表示快閃記憶體180的空間不足夠。因此,控制器160可藉由資料集中程序將有效資料集中寫入一新的區塊中以釋放被佔用的區塊。舉例而言,快閃記憶體180具有一第一三階資料區塊、一第二三階資料區塊、一第三三階資料區塊以及一第四三階備用區塊,其中每一三階區塊具有16個頁面,第一三階資料區塊包括10個具有有效資料 的頁面以及6個不具有有效資料的頁面,第二三階資料區塊包括4個具有有效資料的頁面以及12個不具有有效資料的頁面,第三三階資料區塊包括1個具有有效資料的頁面以及15個不具有有效資料的頁面,並且第四三階備用區塊不具有任何有效資料。在資料集中程序中,控制器160將第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之有效資料寫入第四三階備用區塊之15個頁面中,並且釋放第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊為三個新的三階備用區塊,以增加三階備用區塊的數量。值得注意的是,單階備用區塊的數量亦可藉由上述的方法增加。
在決定目前快閃記憶體180所需之複數維護程序後,控制器160更用以根據一既定條件,在維護程序中選擇一者作為一第一維護程序。舉例而言,控制器160根據讀取次數、抹除次數、錯誤位元數以及三階備用區塊的數量決定目前所需要的維護程序有耗損平均程序以及讀取回收程序,並且根據既定條件在耗損平均程序以及讀取回收程序中選擇讀取回收程序作為第一維護程序,但本發明不限於此。接著,控制器160更繼續在第一讀取作業中,根據一既定條件執行第一維護程序。在一實施例中,既定條件包括一剩餘時間,並且剩餘時間為作業時間減去第一讀取作業已花費之時間,但本發明不限於此。舉例而言,控制器160會優先選擇可在剩餘時間內結束之維護程序作為第一維護程序。在另一實施例中,既定條件更包括維護程序之優先權。舉例而言,當多個維護程序皆可在剩餘時間內完成時,控制器160更用以優先選擇優先權較高的維護 程序作為第一維護程序。在一實施例中,其中讀取回收程序之優先權大於資料集中程序,資料集中程序之優先權大於更新程序,並且更新程序之優先權大於耗損平均程序,但本發明不限於此。在其他實施例中,電路設計者可自行依照維護程序之重要程度分配優先權。值得注意的是,一般而言耗損平均程序以及資料集中程序是在寫入程序中進行的維護程序。因此,在本實施例中,耗損平均程序以及資料集中程序具有較低的優先權。
值得注意的是,在某些實施例中,所需的維護程序可能只有一個。因此,控制器160不需要在多個維護程序中選擇一個,其可直接根據既定條件判斷維護程序是否可在剩餘時間內執行完畢。當既定條件可在剩餘時間內執行完畢時,控制器160將僅有一個之維護程序做為第一維護程序,並執行第一維護程序。
接著,在第一讀取作業中,控制器160更用以在第一維護程序結束後,判斷剩餘時間是否超過一既定值。當剩餘時間超過既定值時,控制器160更用以繼續根據既定條件,選擇尚未執行之維護程序中之一第二維護程序,並且在第一讀取作業中繼續執行第二維護程序。當剩餘時間小於既定值時,控制器160則結束第一讀取作業,並接著執行讀取作業中尚未執行之一第二讀取作業。
第2圖係本發明之另一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140。流程開始於步驟S200。
在步驟S200中,控制器160自主機120接收到用以讀取一資料之一讀取命令。
接著,在步驟S202中,控制器160分析讀取命令所需之複數讀取作業,並且根據讀取命令之一輸入/輸出延遲時間(I/O latency)以及讀取作業的數量,決定每一讀取作業之作業時間。其中,每一讀取作業用以讀取快閃記憶體180之一個讀取單位的資料或者相應於讀取命令中之一個邏輯位址(LBA)的資料。換言之,在接收到讀取命令後,控制器160根據讀取命令所指示之資料的長度以及位址,分析出所需要執行之讀取作業的數量、每一讀取作業的資料位址與長度以及相關的指令。接著,控制器160根據該讀取命令之一輸入/輸出延遲時間(I/O latency)以及讀取作業的數量,決定每一讀取作業之作業時間。在一實施例中,作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值,並且作業時間小必須於資料子集讀出時間。換言之,每一讀取作業之作業時間都相同,若作業時間為輸入/輸出延遲時間除以讀取作業的數量所獲得之值大於資料子集讀出時間時,作業時間等於資料子集讀出時間做為,但本發明不限於此。在另一實施例中,作業時間隨著讀取作業的執行順序而遞減,並且每一作業時間小於一資料子集讀出時間。換言之,作業時間可具有預設之複數個值,控制器160會根據讀取作業的數量以及輸入/輸出延遲時間等,將具有較長時間的作業時間分配給先執行之讀取作業,並將具有較短時間的作業時間分配給後面執行的讀取作業。
接著,在步驟S204中,控制器160選擇一尚未執行 之讀取作業,以開始所選擇之讀取作業。其中,控制器160可根據位址的順序選擇讀取作業,但本發明不限於此。
接著,在步驟S206中,控制器160先自快閃記憶體180讀取所接收之讀取命令所指定的資料之一部分,並將所讀取之部分傳送給主機120,其中控制器160所讀取之部分為相應於在步驟S204中所選擇之讀取作業的資料段。
接著,在步驟S208中,控制器160將所讀取之資料的部分傳送給主機120。
接著,在步驟S210中,控制器160決定目前快閃記憶體180所需之複數維護程序,其中維護程序係用以維護快閃記憶體180中之資料。在一實施例中,維護程序之種類包括耗損平均程序、讀取回收程序、更新程序以及資料集中程序,但本發明不限於此。當區塊中最小之抹除次數與最大之抹除次數的差大於一既定差值時,控制器160判斷所需的維護程序包括一耗損平均程序(wear-leveling)。當快閃記憶體180中之資料的錯誤位元數大於一既定錯誤位元數時,控制器160判斷所需的維護程序包括一讀取回收程序(read reclaim)。當快閃記憶體180中之資料的讀取次數大於一既定讀取次數時,控制器160判斷所需的維護程序包括一更新程序(read refresh)。當區塊中之三階備用區塊的數量小於一既定區塊數量時,控制器160判斷所需之維護程序包括一資料集中程序。
接著,在步驟S212中,控制器160根據一既定條件,在維護程序中選擇尚未被執行之一者作為一特定維護程序。在一實施例中,既定條件包括一剩餘時間,並且剩餘時間 為作業時間減去目前之讀取作業已花費之時間,但本發明不限於此。舉例而言,控制器160會優先選擇可在剩餘時間內結束之維護程序作為特定維護程序。在另一實施例中,既定條件更包括維護程序之優先權。舉例而言,當多個維護程序皆可在剩餘時間內完成時,控制器160更用以優先選擇優先權較高的維護程序作為特定維護程序。在一實施例中,其中讀取回收程序之優先權大於資料集中程序,資料集中程序之優先權大於更新程序,並且更新程序之優先權大於耗損平均程序,但本發明不限於此。在其他實施例中,電路設計者可自行依照維護程序之重要程度分配優先權。值得注意的是,一般而言耗損平均程序以及資料集中程序是在寫入程序中進行的維護程序。因此,在本實施例中,耗損平均程序以及資料集中程序具有較低的優先權。
接著,在步驟S214中,控制器160執行所選擇之特定維護程序。
接著,在步驟S216中,控制器160判斷剩餘時間是否超過一既定值。當剩餘時間超過既定值時,流程回到步驟S212,控制器160根據既定條件選擇另一維護程序。當剩餘時間小於既定值時,流程進行至步驟S218。
在步驟S218中,目前之讀取作業結束。
接著,在步驟S220中,控制器160判斷是否有其他讀取作業尚未執行。換言之,在步驟S200接收到之讀取命令所指示之資料是否已全部傳送至主機120。當有其他讀取作業尚未執行時,流程進行回到步驟S204,控制器160選擇另一尚未 執行之讀取作業以開始另一讀取作業。當沒有其他讀取作業尚未執行時,流程結束於步驟S220。
由上述可知,資料儲存裝置140以及資料維護方法可根據輸入/輸出延遲時間決定作業時間,並且根據所剩餘之作業時間動態調整維護程序,以在讀取狀態中同時進行背景的維護程序,並使得背景的維護程序不影響讀取程序的正常操作。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。

Claims (26)

  1. 一種資料儲存裝置,包括:一快閃記憶體;以及一控制器,自一主機接收用以讀取一資料之一讀取命令,分析該讀取命令所需之複數讀取作業,以及根據該讀取命令之一輸入/輸出延遲時間(I/O latency)以及該等讀取作業的數量,決定每一該等讀取作業之一作業時間,其中在該等讀取作業之一第一讀取作業中,該控制器自快閃記憶體讀取該資料之一部分,將該部分傳送給該主機,並且根據一既定條件執行一第一維護程序,其中該既定條件包括一剩餘時間,並且該剩餘時間為該作業時間減去該第一讀取作業已花費之時間。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中該作業時間為該輸入/輸出延遲時間除以該等讀取作業的數量所獲得之值,並且該作業時間小於一資料子集讀出時間。
  3. 根據申請專利範圍第1項之資料儲存裝置,其中該等作業時間隨著該等讀取作業的執行順序而遞減,並且每一該等作業時間小於一資料子集讀出時間。
  4. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以在將所讀取之該部分傳送給該主機後,決定複數維護程序,其中該等維護程序係用以維護該快閃記憶體中之資料。
  5. 根據申請專利範圍第4項之資料儲存裝置,其中該快閃記憶體具有複數區塊,並且每一該等區塊具有一抹除次數,當 該等區塊中最小之該抹除次數與最大之該抹除次數的差大於一既定差值時,該控制器判斷該等維護程序包括一耗損平均程序(wear-leveling)。
  6. 根據申請專利範圍第4項之資料儲存裝置,其中當該快閃記憶體中之資料的錯誤位元數大於一既定錯誤位元數時,該控制器判斷該等維護程序包括一讀取回收程序(read reclaim)。
  7. 根據申請專利範圍第4項之資料儲存裝置,其中當該快閃記憶體中之資料的讀取次數大於一既定讀取次數時,該控制器判斷該等維護程序包括一更新程序(read refresh)。
  8. 根據申請專利範圍第4項之資料儲存裝置,其中該快閃記憶體具有複數區塊,當該等區塊中之三階備用區塊的數量小於一既定區塊數量時,該控制器判斷該等維護程序包括一資料集中程序。
  9. 根據申請專利範圍第4項之資料儲存裝置,其中在該第一讀取作業中,該控制器係根據該既定條件,在該等維護程序中選擇一者作為該第一維護程序。
  10. 根據申請專利範圍第9項之資料儲存裝置,其中在該既定條件更包括該等維護程序之優先權。
  11. 根據申請專利範圍第10項之資料儲存裝置,其中該等維護程序包括一耗損平均程序、一讀取回收程序、一更新程序以及一資料集中程序,其中該讀取回收程序之優先權大於該資料集中程序,該資料集中程序之優先權大於該更新程序,並且該更新程序之優先權大於該耗損平均程序。
  12. 根據申請專利範圍第10項之資料儲存裝置,其中在該第一讀取作業中,該控制器更用以在該第一維護程序結束後,判斷該剩餘時間是否超過一既定值,當該剩餘時間超過該既定值時,根據該既定條件,選擇尚未執行之該等維護程序中之一第二維護程序,並且執行該第二維護程序。
  13. 根據申請專利範圍第12項之資料儲存裝置,其中當該剩餘時間小於該既定值時,結束該第一讀取作業,以執行該等讀取作業中之一第二讀取作業。
  14. 一種資料維護方法,適用於具有一快閃記憶體之一資料儲存裝置,包括:自一主機接收用以讀取一資料之一讀取命令;分析該讀取命令所需之複數讀取作業;以及根據該讀取命令之一輸入/輸出延遲時間(I/O latency)以及該等讀取作業的數量,決定每一該等讀取作業之一作業時間,其中該等讀取作業之一第一讀取作業包括:自快閃記憶體讀取該資料之一部分;將該部分傳送給該主機;以及根據一既定條件執行一第一維護程序,其中該既定條件包括一剩餘時間,並且該剩餘時間為該作業時間減去該第一讀取作業已花費之時間。
  15. 根據申請專利範圍第14項之資料維護方法,其中該作業時間為該輸入/輸出延遲時間除以該等讀取作業的數量所獲得之值,並且該作業時間小於一資料子集讀出時間。
  16. 根據申請專利範圍第14項之資料維護方法,其中該等作業 時間隨著該等讀取作業的執行順序而遞減,並且每一該等作業時間小於一資料子集讀出時間。
  17. 根據申請專利範圍第14項之資料維護方法,其中該第一讀取作業更包括:在將所讀取之該部分傳送給該主機後,決定複數維護程序,其中該等維護程序係用以維護該快閃記憶體中之資料。
  18. 根據申請專利範圍第17項之資料維護方法,其中該快閃記憶體具有複數區塊,每一該等區塊具有一抹除次數,並且上述決定該等維護程序的步驟更包括:當該等區塊中最小之該抹除次數與最大之該抹除次數的差大於一既定差值時,判斷該等維護程序包括一耗損平均程序(wear-leveling)。
  19. 根據申請專利範圍第17項之資料維護方法,其中上述決定該等維護程序的步驟更包括:當該快閃記憶體中之資料的錯誤位元數大於一既定錯誤位元數時,判斷該等維護程序包括一讀取回收程序(read reclaim)。
  20. 根據申請專利範圍第17項之資料維護方法,其中上述決定該等維護程序的步驟更包括:當該快閃記憶體中之資料的讀取次數大於一既定讀取次數時,判斷該等維護程序包括一更新程序(read refresh)。
  21. 根據申請專利範圍第17項之資料維護方法,其中該快閃記憶體具有複數區塊,上述決定該等維護程序的步驟更包括: 當該等區塊中之三階備用區塊的數量小於一既定區塊數量時,判斷該等維護程序包括一資料集中程序。
  22. 根據申請專利範圍第17項之資料維護方法,其中該第一讀取作業更包括:根據該既定條件,在該等維護程序中選擇一者作為該第一維護程序。
  23. 根據申請專利範圍第22項之資料維護方法,其中在該既定條件更包括該等維護程序之優先權。
  24. 根據申請專利範圍第23項之資料維護方法,其中該等維護程序包括一耗損平均程序、一讀取回收程序、一更新程序以及一資料集中程序,其中該讀取回收程序之優先權大於該資料集中程序,該資料集中程序之優先權大於該更新程序,並且該更新程序之優先權大於該耗損平均程序。
  25. 根據申請專利範圍第23項之資料維護方法,其中該第一讀取作業更包括:在該第一維護程序結束後,判斷該剩餘時間是否超過一既定值;當該剩餘時間超過該既定值時,根據該既定條件,選擇尚未執行之該等維護程序中之一第二維護程序;以及執行該第二維護程序。
  26. 根據申請專利範圍第25項之資料維護方法,其中當該剩餘時間小於該既定值時,結束該第一讀取作業,以執行該等讀取作業中之一第二讀取作業。
TW106107358A 2017-03-07 2017-03-07 資料儲存裝置及其資料維護方法 TWI602116B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106107358A TWI602116B (zh) 2017-03-07 2017-03-07 資料儲存裝置及其資料維護方法
CN201710281073.6A CN108572791B (zh) 2017-03-07 2017-04-26 数据储存装置及其数据维护方法
US15/863,889 US10296231B2 (en) 2017-03-07 2018-01-06 Data-storage device and data maintenance method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106107358A TWI602116B (zh) 2017-03-07 2017-03-07 資料儲存裝置及其資料維護方法

Publications (2)

Publication Number Publication Date
TWI602116B TWI602116B (zh) 2017-10-11
TW201833755A true TW201833755A (zh) 2018-09-16

Family

ID=61010931

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106107358A TWI602116B (zh) 2017-03-07 2017-03-07 資料儲存裝置及其資料維護方法

Country Status (3)

Country Link
US (1) US10296231B2 (zh)
CN (1) CN108572791B (zh)
TW (1) TWI602116B (zh)

Families Citing this family (20)

* 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
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10466911B2 (en) 2017-12-18 2019-11-05 Western Digital Technologies, Inc. Method using logical based addressing for latency reduction
KR102578188B1 (ko) * 2018-05-15 2023-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
KR20210001414A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
TWI734220B (zh) * 2019-07-10 2021-07-21 慧榮科技股份有限公司 主機輸出入命令的執行裝置及方法及電腦程式產品
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7500128B2 (en) * 2005-05-11 2009-03-03 Intel Corporation Mobile systems with seamless transition by activating second subsystem to continue operation of application executed by first subsystem as it enters into sleep mode
US7415557B2 (en) * 2006-06-06 2008-08-19 Honeywell International Inc. Methods and system for providing low latency and scalable interrupt collection
US8683148B2 (en) 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
TWI461913B (zh) 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法
US10002021B2 (en) * 2012-07-20 2018-06-19 Qualcomm Incorporated Deferred preemption techniques for scheduling graphics processing unit command streams
KR102025263B1 (ko) * 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
TWI517181B (zh) * 2013-12-20 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US9619381B2 (en) 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
US9645894B2 (en) 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
KR102193993B1 (ko) * 2014-02-21 2020-12-22 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템

Also Published As

Publication number Publication date
TWI602116B (zh) 2017-10-11
CN108572791A (zh) 2018-09-25
CN108572791B (zh) 2021-04-23
US10296231B2 (en) 2019-05-21
US20180260137A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
TWI602116B (zh) 資料儲存裝置及其資料維護方法
TWI643066B (zh) 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
TWI632457B (zh) 用於資料儲存裝置的損耗平均方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI516922B (zh) 資料儲存裝置及快閃記憶體零散資料收集方法
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
TWI585770B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI397071B (zh) 記憶體儲存裝置及其控制方法
TWI446349B (zh) 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
US9304900B2 (en) Data reading method, memory controller, and memory storage device
TWI423022B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI437569B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11176035B2 (en) Data storage devices and data processing methods
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US9223688B2 (en) Data storing method and memory controller and memory storage device using the same
CN115114180A (zh) 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
JP5447617B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法
TWI644250B (zh) 電子系統及其資料維護方法
US9652378B2 (en) Writing method, memory controller and memory storage device
JP4952742B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9268554B2 (en) Controlling method, memory controller, and data transmission system
JP2013200726A (ja) 半導体記憶装置