TWI598733B - 權重式資料搬遷控制裝置與方法 - Google Patents

權重式資料搬遷控制裝置與方法 Download PDF

Info

Publication number
TWI598733B
TWI598733B TW105100758A TW105100758A TWI598733B TW I598733 B TWI598733 B TW I598733B TW 105100758 A TW105100758 A TW 105100758A TW 105100758 A TW105100758 A TW 105100758A TW I598733 B TWI598733 B TW I598733B
Authority
TW
Taiwan
Prior art keywords
relocation
blocks
block
data
control device
Prior art date
Application number
TW105100758A
Other languages
English (en)
Other versions
TW201725513A (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 TW105100758A priority Critical patent/TWI598733B/zh
Priority to US15/297,590 priority patent/US10248559B2/en
Publication of TW201725513A publication Critical patent/TW201725513A/zh
Application granted granted Critical
Publication of TWI598733B publication Critical patent/TWI598733B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

權重式資料搬遷控制裝置與方法
本案是關於儲存控制,尤其是關於權重式資料搬遷控制裝置與方法。
一般非揮發性記憶體(例如快閃記憶體)控制器(例如固態硬碟控制器)會依據複數種資料搬遷決策規則來決定是否搬遷資料,以有效率地利用儲存空間及維持資料的正確性。該複數種資料搬遷決策規則通常包含垃圾收集(garbage collection)規則、資料保存(data retention)規則、耗損平均(wear leveling)規則等。垃圾收集規則是供控制器挑選具有較少有效資料的一已使用儲存區塊以及將已使用的儲存區塊內之有效資料搬移至一未使用儲存區塊,從而使已使用儲存區塊得以被抹除以供重新使用。資料保存規則是供該控制器在已使用儲存區塊之資料變得無法被正確地讀取前將已使用儲存區塊的有效資料搬移至一未使用儲存區塊,從而延長資料保存時間。
承上所述,由於現有非揮發性記憶體控制器是分別按照各自的規則來搬遷資料,無法綜合考量複數個規則以挑選最需要資料搬移的已使用儲存區塊,因此現有資料搬遷技術會造成控制器效能的浪費,也會造成非揮發性記憶體的壽命減少。
鑑於先前技術之不足,本案之一目的在於提供權重式資料搬遷控制裝置與方法,以改善先前技術。
本案提供一種權重式資料搬遷控制裝置,能夠控制一非揮發性記憶體之資料搬遷,該非揮發性記憶體包含複數個已用區塊與複數個未用區塊,每該已用區塊對應一第一搬遷參數與一第二搬遷參數,該權重式資料搬遷控制裝置之一實施例包含一儲存控制器,能夠執行至少下列步驟以控制該非揮發性記憶體之資料搬遷:將每該已用區塊之第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到每該已用區塊之一搬遷優先權索引,其中該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一相依於一熱偵測結果;比較每該已用區塊的搬遷優先權索引與至少一門檻值,從而得到每該已用區塊之一比較結果;以及若該複數個已用區塊之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,將該已用儲存區塊中的有效資料搬移至該複數個未用區塊之一未用儲存區塊。
本案另提供一種權重式資料搬遷控制方法,其是由本案之權重式資料搬遷控制裝置或其等效裝置來執行,能夠控制一非揮發性記憶體之資料搬遷,該非揮發性記憶體包含複數個已用區塊與複數個未用區塊,每該已用區塊對應一第一搬遷參數與一第二搬遷參數,該權重式資料搬遷控制方法之一實施例包含下列步驟:將每該已用區塊之第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到每該已用區塊之一搬遷優先權索引,其中該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一相依於一熱偵測結果;比較每該已用區塊的搬遷優先權索引與至少一門檻值,從而得到每該已用區塊之一比較結果;以及若該複數個已用區塊之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,將該已用儲存區塊中的有效資料搬移至該複數個未用區塊之一未用儲存區塊。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
以下說明內容之用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本案之揭露內容包含權重式資料搬遷(data relocation)控制裝置與方法,可應用於儲存控制裝置像是固態硬碟控制器(solid state drive controller, SSD controller)或其它用來控制非揮發性記憶體(例如快閃記憶體)之存取的裝置。該權重式資料搬遷控制裝置之部分元件單獨而言可能為已知元件,在不影響發明之充分揭露及可實施性的前提下,以下說明對於個別已知元件的細節將予以節略;另外,該方法可以是軟體及/或韌體之形式,藉由本案之裝置或其等效裝置來執行。
本技術領域具有通常知識者可依現有通常知識及/或本案明瞭一般非揮發性記憶體的儲存機制(例如依資料區塊的邏輯排序來依序儲存的機制)、無效資料產生的緣由(例如當舊資料被新資料取代時,舊資料被標記為無效而非直接被新資料覆寫)、有效資料筆數的估測(例如透過計數器來累加無效資料的筆數或遞減有效資料的筆數)以及儲存時間的估測(例如依複數筆資料儲存順序的先後來估測該複數筆資料的儲存時間)等,在不影響發明之充分揭露及可實施性的前提下,相關細節在此不予贅述。
參閱圖1A,圖1A係根據本案一實施例繪示之一種權重式資料搬遷控制裝置的示意圖。權重式資料搬遷控制裝置100能夠控制一非揮發性記憶體10之資料搬遷,該記憶體10可從屬於或獨立於該控制裝置100,包含複數個已用區塊12(used blocks)與複數個未用區塊14(unused blocks),已用區塊12中每一者對應複數個搬遷參數,該些搬遷參數包含一第一搬遷參數與一第二搬遷參數,為便於瞭解,以下說明中該第一與第二搬遷參數分別代表一無效資料數(count of invalid data)與一儲存時間次序(ranking of storage time),然此非實施限制。
在一些實施例中,儲存時間愈長者,儲存時間次序之次序值愈高。
在一些實施例中,第一與第二搬遷參數亦可分別代表一有效資料數與一儲存時間次序,其中儲存時間愈長者,次序值愈低。
在一些實施例中,控制裝置100包含一儲存控制器110,其可藉由一般的記憶體控制器佐以運算器(例如乘法器或其等效元件、加法器或其等效元件、以及比較器或其等效元件)來實現,該運算器可從屬於或獨立於該記憶體控制器,儲存控制器110能夠執行至少圖1B所示之步驟以控制記憶體10之資料搬遷。
在圖1B中,步驟S112將已用區塊12之每一者的第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到已用區塊12之每一者的一搬遷優先權索引,其中,該第一與第二搬遷參數之產生與儲存屬於習知或自行研發的技術,非屬本實施例之技術特徵,故相關細節在此予以節略。
於一實施例中,由於資料之有效儲存時間會隨著記憶體10之使用壽命的減少而縮短,使得依儲存時間來搬遷資料一事隨著時間經過變得愈發重要,因此,儲存控制器110可進一步依據記憶體10之估測壽命來調整第一與第二權重值,亦即儲存控制器110可因應記憶體10之估測壽命的減少調低該第一權重值並調高該第二權重值,其中儲存控制器10可依據一抹除次數或資料正確性流失率的估測(例如資料讀取時依據錯誤更正碼(error correction code, ECC)對資料進行更正的更正率)來估計該非揮發性記憶體之壽命,該抹除次數的減少或該更正率的增加是反映記憶體10之估測壽命的縮短。
於一實施例中,步驟S112包含下列子步驟以增加該搬遷優先權索引之產生彈性:將該第一搬遷參數乘以該第一權重值以得到一第一參考值;將該第二搬遷參數乘以該第二權重值以得到一第二參考值;以及以一直接或加權的方式來加總該第一參考值與該第二參考值,從而得到該搬遷優先權索引。於一實施例中,步驟S112是藉由一乘法器或其等效元件以及藉由一加法器或其等效元件來實現。
在圖1B中,步驟S114比較已用區塊12之每一者的搬遷優先權索引與至少一門檻值,從而得到已用區塊12之每一者的一比較結果。該至少一門檻值是由實施本實施例者依其需求來決定。
於一實施例中,該至少一門檻值可隨該記憶體10之估測壽命而變動,例如該至少一門檻值隨著該記憶體10之估測壽命的減少而降低,然此並非實施之必要。
於一實施例中,步驟S114是藉由比較器或其等效元件來實現。
在圖1B中,若已用區塊12之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,步驟S116將該已用儲存區塊中的有效資料搬移至未用區塊14之一未用儲存區塊。在本實施例中,若比較結果顯示已用儲存區塊的搬遷優先權索引達到該預設門檻值,所述的已用儲存區塊即符合該預設搬遷門檻,此時儲存控制器110可將該已用儲存區塊中的有效資料搬移至該未用儲存區塊。
於一實施例中,步驟S116是藉由一般的記憶體控制器來實現。
承上所述,於本實施例之一實施樣態中,該記憶體10處於使用壽命之初期,該第一與第二搬遷參數分別為無效資料數與儲存時間次序,分別對應垃圾收集規則與資料保存規則,該第一與第二搬遷參數之最大值分別為25與100,已用區塊12之一第一已用區塊的第一與第二搬遷參數之值分別為5與30,已用區塊12一第二已用區塊的第一與第二搬遷參數之值分別為10與25,該第一與第二權重值分別為0.6×(100/25)=2.4與0.4(其中「×(100/25)」是用來平衡第一與第二搬遷參數之差異,可以是也可以不是實際執行的運算,且非實施之必要),該至少一門檻值包含一搬遷門檻值為25,在上述設定下,該儲存控制器110會先執行步驟S112以求出該第一與第二已用區塊之搬遷優先權索引分別為(5×2.4+30×0.4)=24與(10×2.4+25×0.4)=34,接著執行步驟S114以得到該第一已用區塊之比較結果為第一種結果(比較結果「24<25」符合搬遷優先權索引小於搬遷門檻值之情形)以及得到該第二已用區塊之比較結果為第二種結果(比較結果「34>25」符合搬遷優先權索引大於或等於搬遷門檻值之情形),然後執行步驟S116以將符合預設搬遷門檻的第二已用區塊的有效資料搬移至複數個未用區塊14的一未用儲存區塊。相較之下,先前技術可能基於最壞情形下的資料保存考量搬移儲存時間較久的第一已用區塊的資料,然而,由於記憶體10處於使用壽命的初期,此時仍無資料保存的疑慮,故先前技術會過早地搬移該第一已用區塊的資料,從而造成效能浪費與可用抹除次數的減少。
於本實施例之另一實施樣態中,該記憶體10處於使用壽命之晚期,該第一與第二權重值分別為0.1×(100/25)=0.4與0.9,且其它設定與前一實施樣態之設定相同,在此設定下,該儲存控制器110會先執行步驟S112以求出該第一與第二已用區塊之搬遷優先權索引分別為(5×0.4+30×0.9)=29與(10×0.4+25×0.9)=26.5,接著執行步驟S114以得到該第一與第二已用區塊之比較結果均為第二種結果(比較結果「29≥25以及26.5≥25」均符合搬遷優先權索引大於或等於搬遷門檻值之情形),然後執行步驟S116以將符合預設搬遷門檻的第一與第二已用區塊的有效資料分別搬移至二個未用區塊14,藉此在較高的第二權重值的設定下及早進行資料搬移以避免資料流失。實施本實施例者亦可直接依最壞情形下或自定情境下的考量使用固定的第一與第二權重值。
參閱圖1A與圖1B之步驟S114,於一實施例中,該至少一門檻值包含第一門檻值與第二門檻值,若已用區塊12其中一者的搬遷優先權索引達到該第一門檻值,儲存控制器110給予達到該第一門檻值的之該者一第一搬遷優先權;若已用區塊12其中一者的搬遷優先權索引介於該第一與第二門檻值之間,儲存控制器110給予介於該第一與第二門檻值之間的該者一第二搬遷優先權;若該已用區塊12其中一者的搬遷優先權索引未達到該第二門檻值,儲存控制器110給予未達到該第二門檻值的該者一第三搬遷優先權,且該第三搬遷優先權低於該第二搬遷優先權,以及該第二搬遷優先權低於該第一搬遷優先權。藉由上述,儲存控制器110可依搬遷優先權索引來將已用區塊12分組,從而優先搬遷搬遷優先權較高的組別。當然,本領域具有通常知識者能夠依循上述說明來使用更多門檻值,藉此將已用區塊12分為更多組。
參閱圖1A與圖1B之步驟S116,於一實施例中,在儲存控制器110搬移該已用儲存區塊的有效資料後,儲存控制器110可進一步執行下列步驟:抹除該已用儲存區塊以使其變得可用;以及將該未用儲存區塊視為已用。儲存區塊之抹除操作與回收操作之任一單獨而言屬於本領域之習知技術,其細節在此予以節略。
前述第一與第二搬遷參數的至少其中之一及/或第一與第二權重值的至少其中之一也可與一環境因素相依,該環境因素例如是權重式資料搬遷控制裝置100所處環境之溫度,當環境溫度愈高,記憶體10所保存的資料愈容易流失,因此控制裝置100可進一步依據一熱感測器(thermal sensor)120之一熱偵測結果來決定該第一與第二搬遷參數的至少其中之一及/或決定該第一與第二權重值的至少其中之一,其中熱感測器120可包含於控制裝置100中如圖1C所示,或於另一實施例中獨立於控制裝置100之外如圖1D所示。參閱圖1C或圖1D,熱感測器120會偵測控制裝置100所處環境之溫度,並據以產生一熱偵測結果,其可為數位資訊或類比資訊,當該熱偵測結果為類比資訊時,控制裝置100會利用一已知的類比至數位轉換電路將該類比資訊轉換為該數位資訊,而於得到該熱偵測結果後,控制裝置100之儲存控制器110便可依據該結果透過查表或其均等方式來選擇適當的值做為該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一、或透過運算(例如四則運算)來調整目前的第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一、或維持目前的第一與第二搬遷參數及/或該第一與第二權重值不變,上述查表操作、運算操作與維持操作可被適當結合以供使用。於一實施例中,若以 xy來分別代表目前的第一與第二搬遷參數或第一與第二權重值,在其它條件不變時,圖1C或圖1D的控制裝置100可依熱偵測結果 T來決定更新後的第一與第二搬遷參數或第一與第二權重值分別為 x/ f( T)與 yg( T),其中 f( T)與 g( T)與熱偵測結果 T之關係的一範例如下表1所示,然此並非實施限制,本領域人士可依其需求及本案之揭露內容來推衍出其它範例。 表1 <TABLE border="1" borderColor="#000000" width="_0004"><TBODY><tr><td> </td><td><i>f</i>(<i>T</i>) </td><td><i>g</i>(<i>T</i>) </td></tr><tr><td><i>T</i>低於20℃ </td><td> 0.5 </td><td> 0.5 </td></tr><tr><td><i>T</i>=20℃~30℃ </td><td> 1 </td><td> 1 </td></tr><tr><td><i>T</i>=31℃~50℃ </td><td> 1.5 </td><td> 1.5 </td></tr><tr><td><i>T</i>=51℃~80℃ </td><td> 2 </td><td> 2 </td></tr><tr><td><i>T</i>=81℃~100℃ </td><td> 4 </td><td> 4 </td></tr><tr><td><i>T</i>高於100℃ </td><td> 5 </td><td> 5 </td></tr></TBODY></TABLE>
除前述之控制裝置100,本案另提出一種權重式資料搬遷控制方法,其是由控制裝置100或其等效裝置來執行,同樣能控制一非揮發性記憶體之資料搬遷,該非揮發性記憶體包含複數個已用區塊與複數個未用區塊,已用區塊之每一者對應一第一搬遷參數與一第二搬遷參數,該控制方法之一實施例如圖2所示,包含下列步驟: 步驟S210:將每個已用區塊之第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到每個已用區塊之一搬遷優先權索引,其中該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一相依於一熱偵測結果。 步驟S220:比較每個已用區塊的搬遷優先權索引與至少一門檻值,從而得到每個已用區塊之一比較結果。 步驟S230:若已用區塊之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,將該已用儲存區塊中的有效資料搬移至該複數個未用區塊之一未用儲存區塊。
由於本領域具有通常知識者能夠藉由前揭裝置實施例之揭露來推知本方法實施例的細節與變化,更明確地說,前揭裝置實施例之技術特徵均可合理應用於本方法實施例中,因此,在不影響本方法實施例之揭露要求與可實施性的前提下,重複及冗餘之說明在此予以省略。
綜上所述,本案藉由綜合考量複數個搬遷參數以適應性地給予所述搬遷參數適當的權重,從而改善資料搬遷的效能並延長非揮發性記憶體的壽命。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
10 非揮發性記憶體 12 複數個已用區塊 14 複數個未用區塊 100 權重式資料搬遷控制裝置 110 儲存控制器 120 熱感測器 S112~S116 步驟 S210~S230 步驟
〔圖1A〕為本案之權重式資料搬遷控制裝置之一實施例的示意圖; 〔圖1B〕為圖1A之儲存控制器所執行之步驟之一實施例的示意圖; 〔圖1C〕為本案之權重式資料搬遷控制裝置之另一實施例的示意圖; 〔圖1D〕為本案之權重式資料搬遷控制裝置之又一實施例的示意圖;以及 〔圖2〕為本案之權重式資料搬遷控制方法之一實施例的示意圖。
10 非揮發性記憶體 12 複數個已用區塊 14 複數個未用區塊 100 權重式資料搬遷控制裝置 110 儲存控制器

Claims (10)

  1. 一種權重式資料搬遷(data relocation)控制裝置,能夠控制一非揮發性記憶體之資料搬遷,該非揮發性記憶體包含複數個已用區塊(used blocks)與複數個未用區塊(unused blocks),每該已用區塊對應一第一搬遷參數與一第二搬遷參數,該權重式資料搬遷控制裝置包含: 一儲存控制器,能夠執行至少下列步驟以控制該非揮發性記憶體之資料搬遷: 將每該已用區塊之第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到每該已用區塊之一搬遷優先權索引(relocation priority index),其中該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一相依於一熱偵測結果; 比較每該已用區塊的搬遷優先權索引與至少一門檻值,從而得到每該已用區塊之一比較結果;以及 若該複數個已用區塊之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,將該已用儲存區塊中的有效資料搬移至該複數個未用區塊之一未用儲存區塊。
  2. 如申請專利範圍第1項所述之權重式資料搬遷控制裝置,其中該第一搬遷參數為一無效資料數(count of invalid data),該第二搬遷參數為一儲存時間次序(ranking of storage time)。
  3. 如申請專利範圍第1項或第2項所述之權重式資料搬遷控制裝置,其中該儲存控制器依據該非揮發性記憶體之估測壽命調整該第一與第二權重值。
  4. 如申請專利範圍第3項所述之權重式資料搬遷控制裝置,其中該儲存控制器依據一抹除次數來估計該非揮發性記憶體之估測壽命,該抹除次數之增加反映該非揮發性記憶體之估測壽命之減少。
  5. 如申請專利範圍第1項或第2項所述之權重式資料搬遷控制裝置,其中該儲存控制器因應該非揮發性記憶體之估測壽命的減少調低該第一權重值並調高該第二權重值。
  6. 如申請專利範圍第1項所述之權重式資料搬遷控制裝置,其中該至少一門檻值包含一第一門檻值與一第二門檻值,若該複數個已用區塊的至少其中之一的搬遷優先權索引達到該第一門檻值,該儲存控制器給予達到該第一門檻值的已用區塊一第一搬遷優先權;若該複數個已用區塊的至少其中之一的搬遷優先權索引介於該第一與第二門檻值之間,該儲存控制器給予介於該第一與第二門檻值之間的已用區塊一第二搬遷優先權;若該複數個已用區塊的至少其中之一的搬遷優先權索引未達到該第二門檻值,該儲存控制器給予未達到該第二門檻值的已用區塊一第三搬遷優先權,且該第三搬遷優先權低於該第二搬遷優先權以及該第二搬遷優先權低於該第一搬遷優先權。
  7. 如申請專利範圍第1項所述之權重式資料搬遷控制裝置,其中得到每該已用區塊之搬遷優先權索引之步驟包含:將該第一搬遷參數乘以該第一權重值以得到一第一參考值;將該第二搬遷參數乘以該第二權重值以得到一第二參考值;以及以一直接或加權的方式來加總該第一參考值與該第二參考值,從而得到該搬遷優先權索引。
  8. 一種權重式資料搬遷控制方法,由一儲存控制器來執行,能夠控制一非揮發性記憶體之資料搬遷,該非揮發性記憶體包含複數個已用區塊與複數個未用區塊,每該已用區塊對應一第一搬遷參數與一第二搬遷參數,該權重式資料搬遷控制方法包含下列步驟: 將每該已用區塊之第一與第二搬遷參數分別乘以一第一權重值與一第二權重值,從而得到每該已用區塊之一搬遷優先權索引,其中該第一與第二搬遷參數的至少其中之一及/或該第一與第二權重值的至少其中之一相依於一熱偵測結果; 比較每該已用區塊的搬遷優先權索引與至少一門檻值,從而得到每該已用區塊之一比較結果;以及 若該複數個已用區塊之一已用儲存區塊的比較結果顯示該已用儲存區塊符合一預設搬遷門檻,將該已用儲存區塊中的有效資料搬移至該複數個未用區塊之一未用儲存區塊。
  9. 如申請專利範圍第8項所述之權重式資料搬遷控制方法,其中該第一搬遷參數為一無效資料數,該第二搬遷參數為一儲存時間次序。
  10. 如申請專利範圍第8項或第9項所述之權重式資料搬遷控制方法,進一步包含:依據該非揮發性記憶體之估測壽命調整該第一與第二權重值。
TW105100758A 2016-01-12 2016-01-12 權重式資料搬遷控制裝置與方法 TWI598733B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105100758A TWI598733B (zh) 2016-01-12 2016-01-12 權重式資料搬遷控制裝置與方法
US15/297,590 US10248559B2 (en) 2016-01-12 2016-10-19 Weighting-type data relocation control device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105100758A TWI598733B (zh) 2016-01-12 2016-01-12 權重式資料搬遷控制裝置與方法

Publications (2)

Publication Number Publication Date
TW201725513A TW201725513A (zh) 2017-07-16
TWI598733B true TWI598733B (zh) 2017-09-11

Family

ID=59275683

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105100758A TWI598733B (zh) 2016-01-12 2016-01-12 權重式資料搬遷控制裝置與方法

Country Status (2)

Country Link
US (1) US10248559B2 (zh)
TW (1) TWI598733B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190066765A1 (en) * 2017-08-23 2019-02-28 Nanya Technology Corporation Dram and method for operating the same
CN114974387B (zh) * 2022-07-29 2022-11-01 中国科学院微电子研究所 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235432A1 (en) * 2007-03-19 2008-09-25 A-Data Technology Co., Ltd. Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof
US20090172286A1 (en) * 2007-12-31 2009-07-02 Menahem Lasser Method And System For Balancing Host Write Operations And Cache Flushing
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
WO2014042435A1 (en) * 2012-09-11 2014-03-20 Samsung Electronics Co., Ltd. Apparatus and method for storing data in terminal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799747B2 (en) * 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US9430376B2 (en) * 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US9489146B2 (en) * 2014-12-09 2016-11-08 Sandisk Technologies Llc Memory system and method for selecting memory dies to perform memory access operations in based on memory die temperatures
KR102301772B1 (ko) * 2015-03-09 2021-09-16 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235432A1 (en) * 2007-03-19 2008-09-25 A-Data Technology Co., Ltd. Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof
US20090172286A1 (en) * 2007-12-31 2009-07-02 Menahem Lasser Method And System For Balancing Host Write Operations And Cache Flushing
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
WO2014042435A1 (en) * 2012-09-11 2014-03-20 Samsung Electronics Co., Ltd. Apparatus and method for storing data in terminal

Also Published As

Publication number Publication date
US20170199813A1 (en) 2017-07-13
US10248559B2 (en) 2019-04-02
TW201725513A (zh) 2017-07-16

Similar Documents

Publication Publication Date Title
US11132133B2 (en) Workload-adaptive overprovisioning in solid state storage drive arrays
JP6847764B2 (ja) フラッシュメモリの割当方法及びそれを用いたソリッドステートドライブ
US9571128B2 (en) Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
EP2926256B1 (en) Method and data storage devices having a runtime variable raid protection scheme
US9478292B2 (en) Read operation for a non-volatile memory
US9129699B2 (en) Semiconductor storage apparatus and method including executing refresh in a flash memory based on a reliability period using degree of deterioration and read frequency
US11138124B2 (en) Migrating data between block pools in a storage system
CN104572489B (zh) 磨损均衡方法及装置
US10754560B2 (en) Predicting and controlling power consumption for a storage device
CN111445942A (zh) 基于保留漂移历史的非易失性存储器读取阈值最优化
US7934130B2 (en) System and method for managing non-volatile memory based on health
JP2019053415A (ja) メモリシステム、その制御方法及びプログラム
JP2014110058A (ja) フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング
WO2016088234A1 (ja) 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置
JP2011192260A (ja) 半導体記憶装置
RU2556459C1 (ru) Способ для управления отображением кэша и системой кэша
AU2016225779B2 (en) Wear management for flash memory devices
CN104216665A (zh) 多层单元固态硬盘的存储管理方法
JP7448646B2 (ja) 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算
CN111159059B (zh) 一种垃圾回收方法、装置及非易失性的存储设备
WO2016203612A1 (ja) ストレージ装置
TWI598733B (zh) 權重式資料搬遷控制裝置與方法
CN106980462B (zh) 权重式数据搬迁控制装置与方法
JP2020086748A (ja) メモリコントローラ、及びメモリシステム
JP5950470B2 (ja) バッファマッピングを制御するための方法およびバッファシステム