TWI795249B - 用於閃存裝置之性能平衡導向之寫入速度控制法 - Google Patents

用於閃存裝置之性能平衡導向之寫入速度控制法 Download PDF

Info

Publication number
TWI795249B
TWI795249B TW111111960A TW111111960A TWI795249B TW I795249 B TWI795249 B TW I795249B TW 111111960 A TW111111960 A TW 111111960A TW 111111960 A TW111111960 A TW 111111960A TW I795249 B TWI795249 B TW I795249B
Authority
TW
Taiwan
Prior art keywords
speed
time
recovery
writing
flash memory
Prior art date
Application number
TW111111960A
Other languages
English (en)
Other versions
TW202338817A (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 TW111111960A priority Critical patent/TWI795249B/zh
Application granted granted Critical
Publication of TWI795249B publication Critical patent/TWI795249B/zh
Publication of TW202338817A publication Critical patent/TW202338817A/zh

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

一種用於閃存裝置之性能平衡導向之寫入速度控法包括計算回收速度、鈍化回收速度、計算耗盡時間、依耗盡時間調整被鈍化的回收速度而提供寫入速度。此寫入速度控制法保證空白區塊不耗盡,並以平穩且和緩的寫入速度曲線達到與區塊回收之間的數量平衡。

Description

用於閃存裝置之性能平衡導向之寫入速度控制法
本發明有關於閃存設備執行的垃圾回收程序,尤其是用於閃存設備之性能平穩導向之寫入速度控制法。
閃存顆粒的特性是不斷地把使用者寫入命令寫入空白(被擦除或未被寫)區塊(“block”)。因此,即將填滿所有區塊時,須執行垃圾回收程序,把有效資料從若干區塊(「原區塊」)移到若干空白區塊,然後擦除原區塊,換言之,使原區塊變成空白區塊。這程序被稱為垃圾回收(“garbage collection”:“GC”)。
系統執行垃圾回收程序時,通常還用流量控制單元,監測空白區塊的數量及垃圾回收的速度,並藉由限制寫入速度,減緩寫入性能的波動。仔細地說,是避免空白區塊耗盡而迫使寫入間斷的情形。寫入性能的波動愈小,使用者的體驗愈好。高規格儲存應用逐漸要求性能平穩度。
然而,使用者寫入的資料型態不同,導致每一個區塊包含的有效資料量不同。回收速度將因數據型態不同而變化。因此,在垃圾回收程序中,須避免寫入速度歸零(亦即「間斷」),還須在多種資料型態之間保持性能穩定,並呈現高性能。這些是決定儲存裝置與儲存解決方案是否能夠滿足高規格使用者的關鍵因素。
針對寫入命令與垃圾回收的流量控制,目前市場上有兩種主要設計。其一是逐區塊平衡設計。其二是速度平衡設計。
在逐區塊平衡設計中,每當完成回收一個區塊,就立即開放寫入命令去寫入這個區塊。這種設計最能保證不會有區塊耗盡的問題,不過完全忽略性能平穩性,且存在著寫入命令停止的問題。由於資料型態的不同,回收一個區塊時須搬移的有效資料量不同。因此,處理寫入命令的區間有較大的波動度,且須處理壞塊時,更可能導致長時間無法執行寫入命令。這些都導致寫入性能的波動與歸零的風險。
在速度平衡設計中,每當完成回收一定數量的區塊,透過回收時間進行計算,得到回收平均速度,當作為寫入命令的流量限制。此設計在一定程度優化性能平穩度,但存在區塊耗盡的疑慮。舉例而言,某次回收是在短時間內完成(亦即回收速度高),使寫入速度隨著回收速度變快,但回收下一個區塊費較多時間,這一段期間寫入會維持高速,導致區塊消耗過快,而有區塊耗盡的風險。
如表1所示,「垃圾回收速度」是垃圾回收單元每一秒回收的頁數。垃圾回收完成時,計算回收該區塊的平均速度,當作寫入的「寫入速度」。因此,寫入速度總是追蹤前次回收速度,如表1中同色的格子所示。因垃圾回收完成所耗時間不同,故同色的格子的速度在兩方維持時間不同。這意味使用速度平衡設計時,僅進行速度的追蹤,但不保證空白區塊的數量。因此,產品存在空白區塊耗盡而寫入停止的風險。
Figure 111111960-A0101-12-0003-1
在運用上述兩種方法的產品中,為避免空白區塊耗盡的問題,通常會對其數量進行預警偵測。若偵測到空白區塊即將耗盡,則把寫入命令限制在主機要求的最低流量,僅以驟降的方式避免完全停止。
總的來說,現有的兩種設計在寫入性能上,皆存在著較大的波動性與間斷的風險。
本發明之主要目的是提供一種用於閃存裝置之性能平衡導向之寫入速度控制法。
為達成上述目的,該寫入速度控制法包括計算回收速度、鈍化回收速度、計算耗盡時間、依耗盡時間調整被鈍化的回收速度而提供寫入速度。
本發明的寫入速度控制法保證空白區塊不耗盡,並以平穩且和緩的寫入速度曲線達到與區塊回收之間的數量平衡,讓使用者在垃圾回收模式下有性能穩定的產品體驗。
S10:回報新的回收速度?
S20:首次更新?
S30:超時?
S40:設回收速度為寫入速度
S50:用低通濾波處理回收速度
S51:計算回收區塊收量
S52:計算回收時間及速度
S53:對當前空白區塊回收速度與前次寫入速度進行低通濾波
S60:設下次更新為首次更新
S70:依耗盡時間,調整寫入速度
S71:計算耗盡時間
S72:計算近期平均回收時間
S73:計算耗盡時間閾值
S74:耗盡時間大於高閾值?
S75:提高寫入速度
S76:耗盡時間小於低閾值?
S77:降低寫入速度
S78:以加權調整寫入速度
S80:執行本循環允許的數量的寫入命令
S90:等待至下一個循環
〔圖1〕是本發明的用於快閃記憶體之性能平穩導向之寫入速度控制法的流程圖。
〔圖2〕是圖1的低通濾波的流程圖。
〔圖3〕是圖1的調整寫入速度的流程圖。
為使人瞭解本發明的用於快閃記憶體之性能平穩導向之寫入速度控制法,在此描述若干名詞。
「空白區塊」是儲存裝置中未被寫過或已被擦除的區塊,可立即接受寫入命令的資料。
「空白區塊數量」就是空白區塊的數量。
回收被寫滿的區塊A時,會把有效資料從區塊A移至空白區塊B。其中,區塊A的總空間(或「總容量」)扣除有效資料量,然後除以回收所費的時間,即得「空白區塊回收速度」。
為保證性能平穩度與空白區塊數量,調整每單位時間允許執行的寫入命令的數量,此數量是「寫入速度」。
「低通濾波單元」對空白區塊回收速度進行適當形式的濾波,以鈍化速度的變化性,達到流量平穩化的效果。此類型的濾波形式諸多,比如移動平均或指數低通濾波等等。
「耗盡時間」是空白區塊數量除以當前的寫入速度,代表在不考慮區塊回收的狀態下空白區塊耗盡的時間。
低通濾波單元產生的寫入速度是以平穩(亦即變化緩 慢)的幅度追蹤空白區塊回收速度。寫入速度與空白區塊回收速度的差導致空白區塊數量增或減。為避免耗盡空白區塊,耗盡時間調整單元透過空白區塊數量計算得到耗盡時間。若耗盡時間過長或過短,則對低通濾波單元產生的寫入速度進行調整,以維持適量的空白區塊數量,及較高的寫入性能。具體而言,若耗盡時間過長,則耗盡時間調整單元提高寫入速度,使寫入變快,亦即提高性能。若耗盡時間過短,則耗盡時間調整單元降低寫速限,使寫入變慢,避免耗盡。
以下參考圖1描述本發明的較佳實施例的用於快閃記憶體之性能平穩導向之寫入速度控制法。
在S10,判斷回收單元是否回報新的回收速度。若回收單元回報更新,則到S20,否則到S30。
在S20,判斷是否首次更新。若是首次更新,則到S40,否則到S50。
在S40,設回收速度為寫入速度。然後,到S70。
在S50,用低通濾波單元10,對回收速度進行低通濾波,並設經低通濾波的速度為寫入速度。然後,到S40。
在S30,判斷回收單元是否超時。若回收單元超時,則到S60,否則到S80。
在S60,設下次更新為首次更新。然後,到S70。
在S70,依耗盡時間,調整寫入速度。然後,到S80。
在S80,執行本循環(或「回合」)允許的數量的寫入命令。
以下參考圖2詳細描述對回收速度進行低通濾波的工作S50。
在S51,當垃圾回收單元完成一定數量的區塊回收,以回收的區塊的總容量N block減該區塊的有效資料量N valid而得淨回收空間量N reclaim,即N reclaim=N block-N valid。其中,N以頁(page)為單位。
在S52,計算此次回收單元所費的回收時間T GC,進而得到空白區塊回收速度v GC=N reclaim/T GC,並將其交給低通濾波單元10。
在S53,低通濾波單元10把當前的空白區塊回收速度v GC(t)與前次計算而得的寫入速度v Write(t-1)進行適當形式的低通濾波,例如指數型低通濾波。用低通濾波係數α LPF,如下得到當前的濾波後的寫入速度v LPF(t):
v LPF(t)=α LPF * v GC(t)+(1-α LPF)* v Write(t-1)
以下參考圖3詳細描述調整寫入速度的工作。
在S71,耗盡時間調整單元12以濾波後的寫入速度v LPF或未經濾波的寫入速度與空白區塊數量N free計算耗盡時間T exhaust=N free/v LPFv LPF只當作範例而非限制。
在S72,計算近期平均回收時間T AVG。所謂「近期」可為一段時間或一個回收次數,例如將近期三筆T GC(t)、T GC(t-1)與T GC(t-2)進行直接平均,亦可進行加權平均或指數平均等等。
在S73,以T AVG乘以KHigh、KTarget與KLow而得相關的 耗盡時間閾值T HighT TargetT Low。其中,KHigh、KTarget及KLow是適當的大於1的數,且KHigh
Figure 111111960-A0101-12-0007-6
KTarget
Figure 111111960-A0101-12-0007-5
KLow
T High=T AVG * KHigh
T Target=T AVG * KTarget
T Low=T AVG * KLow
在S74,判斷耗盡時間T exhaust是否大於高閾值THigh。若耗盡時間T exhaust大於高閾值THigh,則到S75,否則到S76。
在S75,提高寫入速度,令v Write=N free/THigh,以提高性能。然後,結束。
在S76,判斷耗盡時間T exhaust是否小於低閾值TLow。若耗盡時間T exhaust小於低閾值TLow,則到S77,否則到S78。
在S77,降低寫入速度,令v Write=N free/TLow,以確保在TLow內不致耗盡。然後,結束。
在S78,計算目標速度v Target=N free/T Target, ,並以加權平均計算v Write=WAVG(v Target ,v LPF WAVG),β WAVG通常小於0。
WAVG(v Target ,v LPF WAVG)=β WAVG * v Target+(1-β WAVG)* v LPF
寫入速度v Write更新完成後,儲存系統以v Write為寫入速度,在每單位時間執行相應的寫入命令數量。
本發明的寫入速度控制法包括若干特點。其一,用適當形式的低通濾波單元,鈍化回收速度的數值變化量,作為寫入速度,使寫入性能得以平穩。
其二,用耗盡時間調整單元,依空白區塊數量的耗盡時 間,進一步調整寫入速度。在提供平穩的寫入性能之餘,也以TTarget使儲存設備維持一定的空白區塊數量。同時,能避免空白區塊在TLow時間內耗盡,同時在至多僅保留足以支撐THigh的空白區塊之條件下,將寫入性能升至最高。在其他實施例中,可用其他方式計算TLow、TTarget與THigh。在其他實施例中,可用四個或更多個閾值,進行階段性調整。
本發明的寫入速度控制法呈現若干優點。其一是性能平穩。本發明用低通濾波單元,鈍化寫入速度的波動度,由空白區塊數量承受回收速度的變化,提供使用者較平穩的寫入性能體驗。因本發明用低通濾波單元對回收速度逐次進行累積與濾波處理,故回收區塊中的資料形態迥異而造成回收速度變化較大時,本發明能鈍化其對於寫入性能的影響。對於真實應用場景中的複雜且綜合的資料型態也能具備平穩的寫入性能。
其二是適用於多工系統。對日益興盛的多核心與多工系統具良好的適用性。因本發明具用低通濾波單元對回收速度逐次進行累積與濾波處理,故當出現某一次回收時間較長,或其他任務費時較長,不會過度影響寫入速度的數值,使寫入性能得以保持一定程度的平穩。
其三是避免耗盡區塊。偵測空白區塊的耗盡時間,過短時介入降低寫入速度,保證空白區塊不致耗盡。
其四是徹底發揮寫入性能。偵測空白區塊的耗盡時間過長時,會提升寫入速度,可徹底發揮寫入性能。
在低通濾波單元方面,可針對應用場景與硬體規格,選用其他鈍化導向的濾波,並將濾波演算法的各項參數都進行即時動態調整。在耗盡時間調整單元方面,能導入機器學習類型的演算法,使時間閾值與判斷更適用於特定應用場景。這類型的差異化,因演算法實作、演算法參數與相關閾值都可為應用場景特化,故能精準運用空白區塊,使得區塊運用較為靈活。
以上僅為描述本發明的較佳實施方式,非用以限定本發明的範圍。本技術領域內的一般技術人員根據上述實施例所作的均等變化,以及本領域內技術人員熟知的改變,仍在本發明的範圍內。
S10:回報新的回收速度?
S20:首次更新?
S30:超時?
S40:設回收速度為寫入速度
S50:用低通濾波處理回收速度
S60:設下次更新為首次更新
S70:依耗盡時間,調整寫入速度
S80:執行本循環允許的數量的寫入命令
S90:等待至下一個循環

Claims (9)

  1. 一種用於閃存設備之性能平穩導向之寫入速度控制法,包括以下步驟:計算回收速度;鈍化回收速度(S53);計算耗盡時間(S71);及依耗盡時間調整被鈍化的回收速度而提供寫入速度。
  2. 如請求項1所述用於閃存設備之性能平穩導向之寫入速度控制法,其中計算回收速度的步驟包括以下步驟:計算回收區塊數量(S51);計算回收時間(S52);及用回收時間除回收區塊數量(S52)。
  3. 如請求項1所述用於閃存設備之性能平穩導向之寫入速度控制法,其中鈍化回收速度的步驟包括用濾波處理回收速度的步驟。
  4. 如請求項3所述用於閃存設備之性能平穩導向之寫入速度控制法,其中計算耗盡時間的步驟包括用空白區塊數量除濾波後的寫入速度的步驟(S71)。
  5. 如請求項4所述用於閃存設備之性能平穩導向之寫入速度控制法,其中依耗盡時間調整被鈍化的回收速度而提供寫入速度的步驟包括以下步驟:提供至少一個時間閾值(S73); 比較耗盡時間與時間閾值;及若耗盡時間超過時間閾值,則調整濾波後的速度而提供寫入速度。
  6. 如請求項5所述用於閃存設備之性能平穩導向之寫入速度控制法,其中提供至少一個時間閾值的步驟包括以下步驟:計算近期平均回收時間(S72);及用平均回收時間計算時間閾值(S73)。
  7. 如請求項5所述用於閃存設備之性能平穩導向之寫入速度控制法,調整濾波後的速度而提供寫入速度的步驟包括以下步驟:若耗盡時間大於高閾值,則用空白區塊數量除高閾值而提供寫入速度;及若耗盡時間小於低閾值,則用空白區塊數量除低閾值而提供寫入速度。
  8. 如請求項5所述用於閃存設備之性能平穩導向之寫入速度控制法,調整濾波後的速度而提供寫入速度的步驟包括以下步驟:若耗盡時間大於高閾值,則用空白區塊數量除高閾值而提供寫入速度,否則判斷耗盡時間是否小於低閾值;若耗盡時間小於低閾值,則用空白區塊數量除低閾值而提供寫入速度,否則設濾波後的速度為寫入速度。
  9. 一種用於閃存設備之性能平穩導向之寫入速 度控制法,包括以下步驟:提供一個回收單元;判斷該回收單元是否回報新的回收速度(S10);若該回收單元回報更新,則判斷是否首次更新(S20);若是首次更新,則設回收速度為寫入速度(S40),否則鈍化回收速度並設經鈍化的回收速度為寫入速度(S50);若該回收單元未回報更新寫入,則判斷該回收單元是否超時(S30);若該回收單元超時,則設下次更新為首次更新(S60),並依耗盡時間調整寫入速度(S70);依寫入速度,執行本循環允許的數量的寫入命令(S80);若該回收單元未超時,則執行本循環允許的數量的寫入命令(S80);及等待至下一個循環(S90)。
TW111111960A 2022-03-29 2022-03-29 用於閃存裝置之性能平衡導向之寫入速度控制法 TWI795249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111111960A TWI795249B (zh) 2022-03-29 2022-03-29 用於閃存裝置之性能平衡導向之寫入速度控制法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111111960A TWI795249B (zh) 2022-03-29 2022-03-29 用於閃存裝置之性能平衡導向之寫入速度控制法

Publications (2)

Publication Number Publication Date
TWI795249B true TWI795249B (zh) 2023-03-01
TW202338817A TW202338817A (zh) 2023-10-01

Family

ID=86692283

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111111960A TWI795249B (zh) 2022-03-29 2022-03-29 用於閃存裝置之性能平衡導向之寫入速度控制法

Country Status (1)

Country Link
TW (1) TWI795249B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201245958A (en) * 2011-05-09 2012-11-16 Sony Corp Flash memory device, memory control device, memory control method, and storage system
US20190227927A1 (en) * 2018-01-19 2019-07-25 Shannon Systems Ltd. Data storage device and data storage method for dynamically executing a garbage-collection process
CN111273868A (zh) * 2020-01-19 2020-06-12 西安奥卡云数据科技有限公司 一种全闪存阵列垃圾回收减少写放大的方法
US20220035736A1 (en) * 2020-07-29 2022-02-03 Silicon Motion, Inc. Data processing method for controlling write speed of memory device to avoid significant write delay and data storage device utilizing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201245958A (en) * 2011-05-09 2012-11-16 Sony Corp Flash memory device, memory control device, memory control method, and storage system
US20190227927A1 (en) * 2018-01-19 2019-07-25 Shannon Systems Ltd. Data storage device and data storage method for dynamically executing a garbage-collection process
CN111273868A (zh) * 2020-01-19 2020-06-12 西安奥卡云数据科技有限公司 一种全闪存阵列垃圾回收减少写放大的方法
US20220035736A1 (en) * 2020-07-29 2022-02-03 Silicon Motion, Inc. Data processing method for controlling write speed of memory device to avoid significant write delay and data storage device utilizing the same

Also Published As

Publication number Publication date
TW202338817A (zh) 2023-10-01

Similar Documents

Publication Publication Date Title
CN111090398B (zh) 固态硬盘的垃圾回收方法、装置、设备及可读存储介质
CN103902465B (zh) 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器
CN103995855B (zh) 存储数据的方法和装置
US7971023B2 (en) Guaranteed memory card performance to end-of-life
CN116126253B (zh) 固态硬盘ssd的流量控制方法、装置、存储介质及设备
CN108681435B (zh) 一种固态硬盘的磨损均衡方法、装置、设备及存储介质
CN110851079B (zh) 一种自适应的存储设备损耗均衡方法及系统
CN110289994B (zh) 一种集群容量调整方法及装置
CN107317864B (zh) 一种存储设备的数据均衡方法及装置
CN109901932B (zh) 一种基于虚拟机的服务器整合方法
CN107291381A (zh) 一种固态硬盘动态加速区的实现方法及固态硬盘
CN109684119B (zh) 应用于NAND Flash损耗均衡的优化方法
CN106201348A (zh) 非易失性存储设备的缓存管理方法及装置
CN106294206A (zh) 一种缓存数据处理方法以及装置
CN111090595A (zh) 一种nand flash垃圾回收均衡优化方法
CN114895846A (zh) 一种数据处理方法、装置及设备
CN111428701B (zh) 小面积指纹图像特征提取方法、系统、终端及存储介质
TWI795249B (zh) 用於閃存裝置之性能平衡導向之寫入速度控制法
CN110400271A (zh) 一种条纹非均匀性校正方法、装置、电子设备及存储介质
CN112433958A (zh) 一种固态硬盘的垃圾回收方法、系统、装置及其存储介质
CN106648472A (zh) 一种基于linux操作系统的磁盘性能优化方法及系统
CN116700634B (zh) 分布式存储系统垃圾回收方法、装置及分布式存储系统
CN106469121B (zh) 一种内存分配的方法及装置
CN115793987B (zh) 一种磨损均衡的方法、装置、电子设备和存储介质
CN114385092B (zh) 固态硬盘闪存阵列的擦除方法、固态硬盘主控芯片