TW202011199A - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TW202011199A TW202011199A TW108107913A TW108107913A TW202011199A TW 202011199 A TW202011199 A TW 202011199A TW 108107913 A TW108107913 A TW 108107913A TW 108107913 A TW108107913 A TW 108107913A TW 202011199 A TW202011199 A TW 202011199A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- source block
- controller
- volatile memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000013500 data storage Methods 0.000 title claims description 30
- 238000012546 transfer Methods 0.000 claims description 41
- 230000003449 preventive effect Effects 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 7
- 230000035484 reaction time Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000013461 design Methods 0.000 abstract description 3
- 238000013508 migration Methods 0.000 description 16
- 230000005012 migration Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
非揮發式記憶體之高效控制技術。一控制器以複數批次搬移一第一來源區塊的有效資料至一主動區塊,並在不同批次間允許一主機要求的寫入資料填入該主動區塊。在沒有一第二來源區塊存在時,該控制器令搬移該第一來源區塊的上述批次各自搬移一第一資料量,反之則令上述批次各自搬移一第二資料量。該第二資料量高於該第一資料量,旨在加速該第一來源區塊的資料搬移。
Description
本案係有關於非揮發式記憶體之控制。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
非揮發式記憶體通常有其特殊的儲存特性。本技術領域需要相應非揮發式記憶體的儲存特性發展相應的控制技術。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一控制器。該控制器根據一主機之要求操作該非揮發式記憶體。該控制器自該非揮發式記憶體的複數個閒置區塊配置一主動區塊填寫該主機要求的寫入資料。該控制器更以該主動區塊作為該非揮發式記憶體中一第一來源區塊的有效資料的搬移目的地。該控制器以複數批次搬移該第一來源區塊的有效資料至該主動區塊,並在不同批次間允許該主機要求的寫入資料填入該主動區塊。該控制器在沒有一第二來源區塊存在時,令搬移該第一來源區塊的上述批次各自搬移一第一資料量。該控制器在存在該第二來源區塊時,令搬移該第一來源區塊的上述批次各自搬移一第二資料量。該第二資料量高於該第一資料量。
一種實施方式中,該控制器在更存在一第三來源區塊時,調升該第二資料量。
一種實施方式中,該控制器令該第一來源區塊的有效資料完全搬移到該主動區塊後,方允許該第二來源區塊的有效資料搬移到該主動區塊。
一種實施方式中,該控制器是在搬移該第一來源區塊的有效資料之初,就設定搬移該第一來源區塊的上述批次各自搬移的資料量。
一種實施方式中,該控制器根據該第一來源區塊的有效頁數x以及該主動區塊的閒置頁數y估算一比例x:(y-x),等效為1:n。該控制器根據來源區塊的總數設定一數值a。該控制器在僅該第一來源區塊存在時,設定該數值a為一常態值,並在不只該第一來源區塊存在時,設定該數值a大於該常態值。該控制器以一比例a:n實行該第一來源區塊一批次的搬移以及該主機要求的寫入資料之寫入。
一種實施方式中,該控制器更根據該非揮發式記憶體程式化的反應時間設定一數值M。該控制器自該第一來源區塊搬移a*M頁有效資料至該主動區塊後,允許該主機要求的n*M頁寫入資料填入該主動區塊。
一種實施方式中,該控制器估算上述數值a*M以及n*M後,先搬移a*M頁有效資料至該主動區塊,方允許該主機要求的n*M頁寫入資料填入該主動區塊。
一種實施方式中,來源區塊之選定,係因應該等閒置區塊之數量小於一臨界數量、或發現錯誤更正失效、或進行預防性搬移、或滿足損耗平均。
一種實施方式中,該控制器將該第一來源區塊的有效資料全數搬移到該主動區塊後,是在該主動區塊完成結尾寫入前釋出該第一來源區塊為閒置區塊。
以上控制器對非揮發式記憶體之操作也可以由其他結構實現。本案更可以前述概念實現非揮發式記憶體的控制方法,包括:根據一主機之要求操作一非揮發式記憶體;自該非揮發式記憶體的複數個閒置區塊配置一主動區塊填寫該主機要求的寫入資料;更以該主動區塊作為該非揮發式記憶體中一第一來源區塊的有效資料的搬移目的地;以複數批次搬移該第一來源區塊的有效資料至該主動區塊,並在不同批次間允許該主機要求的寫入資料填入該主動區塊;在沒有一第二來源區塊存在時,令搬移該第一來源區塊的上述批次各自搬移一第一資料量;且在存在該第二來源區塊時,令搬移該第一來源區塊的上述批次各自搬移一第二資料量。該第二資料量高於該第一資料量。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,用以儲存來自於主機的使用者資料。資料儲存裝置的種類眾多,包括記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
第1圖根據本案一種實施方式圖解資料儲存裝置100。資料儲存裝置100包括快閃記憶體102以及控制器104。主機106透過控制器104而間接存取快閃記憶體102。控制器104除了接收及執行來自主機(Host)106的寫入命令,更主動搬移快閃記憶體102所儲存的使用者資料。
快閃記憶體有其特殊的儲存特性,以下敘述之。
主機106端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)區別使用者資料。快閃記憶體102之物理空間則是劃分為複數個區塊(Blocks)配置使用。各區塊(Block)包括複數頁(Pages)。各頁包括N個區段(Sectors),N為大於一的整數,如:4。16KB空間的頁可分為四個區段,各區段為4KB。一種實施方式中,一區塊係根據頁編號,由低至高編號配置來儲存資料。
一種實施方式中,資料儲存裝置採用多通道技術,可將不同通道的多個區塊可以虛擬成一個超級區塊,多個頁面可以虛擬成一個超級頁面,並以超級區塊、超級頁面進行資料儲存空間的管理,可加快資料儲存裝置的資料吞吐量。
資料儲存裝置將使用者資料的邏輯位址與物理位址的對應關係記錄在邏輯-物理位址映射表(Logical-Physical Mapping Table,L2P Table)中。
快閃記憶體102的儲存空間需先抹除方能再次使用,抹除(Erase)的最小單位為區塊。區塊可區分成資料區塊、主動區塊以及閒置區塊。閒置區塊可作為主動區塊以寫入使用者資料。當主動區塊寫滿使用者資料後,經過關閉處理(寫入EOB(End of Block)資訊),主動區塊變更為資料區塊。隨著使用者資料的更新,部份儲存在資料區塊的使用者資料會由有效資料變更為無效資料。當資料區塊所儲存的使用者資料皆為無效資料時,經抹除處理後則變更為閒置區塊。在另一種實施例中,充滿無效資料的資料區塊會變更為閒置區塊,而抹除處理乃等到閒置區塊作為主動區塊時再予以執行。
快閃記憶體的使用涉及資料搬移程序,可分成垃圾回收程序以及非垃圾回收程序。當閒置區塊數量不足時(例如,少於一臨界數量TH1),可對儲存空間進行垃圾回收(Garbage Collection)處理。例如,當多個資料區塊(又稱來源區塊)僅儲存零星有效資料時,可進行垃圾回收處理而將有效資料集中到一個主動區塊(又稱目的區塊),以回收多個資料區塊,增加閒置區塊數量。
非垃圾回收程序的種類很多,是根據瀕損條件判斷。例如,產生錯誤更正失效(ECC failed)的資料區塊(來源區塊)也需要進行資料搬移以及時搶救其中尚可讀出的使用者資料。另外,過於頻繁讀取的資料區塊(來源區塊)也需要進行資料搬移,避免資料區塊的資料保存能力降低所導致的使用者資料損壞,此操作又稱預防性搬移(Early Move)。另外,資料搬移也可能因應區塊間的損耗平均(Wear Leveling)考量而啟動,例如,將讀取次數低的資料區塊(來源區塊)的使用者資料(包括有效資料及無效資料)全部搬移到抹除計數較高的主動區塊(目的區塊),以回收該資料區塊。另外,損耗平均程序亦可與垃圾回收程序予以結合,即損耗平均程序中搬移多個資料區塊(來源區塊)的有效資料至抹除計數較高的主動區塊(目的區塊)。
需注意的是,資料搬移較佳是以資料複製的方式來實現。
本案對以上有效資料搬移提出一種高效能方案。一旦有資料搬移需求,例如,以上垃圾回收、錯誤更正失效搬移、預防性搬移、損耗平均搬移、或是其他,都可採用本案搬移技巧。
圖中將快閃記憶體102的閒置區塊歸屬至閒置區塊池108,資料區塊歸屬至資料區塊池110。當有主機106提出寫入命令、或控制器104啟動資料搬移程序時,控制器104自閒置區塊池108中選擇一個閒置區塊作為主動區塊A0,此時閒置區塊池108的閒置區塊數量會減一。之後,將使用者資料寫入至主動區塊A0中。當主動區塊A0關閉而成為資料區塊後,資料區塊數量會加一。
快閃記憶體一般以主動區塊A0接收主機的使用者資料,此使用者資料通常由寫入命令所提供(參閱主機寫入資料路徑Host_Data)。特別是,相較於以另一個主動區塊(稱之A1以與A0區別)儲存來自來源區塊的使用者資料,本案控制器104令主動區塊A0也作為資料搬移程序的目的地,而不是使用主動區塊A1。一旦有資料搬移需求,例如,垃圾回收、錯誤更正失效搬移、預防性搬移、損耗平均搬移、或是其他,本案可將資料搬移程序中的來源區塊的使用者資料收集至主動區塊A0(參閱資料搬移路徑Blk_Data)。。特別是,本案令同一區塊的有效資料係分割成多個批次搬移到該主動區塊A0。本案為不同區塊,適應性設定單批次搬移的有效資料量。越多資料區塊產生有效資料搬移需求,單批次搬移的有效資料量越高。主機寫入資料路徑Host_Data以及資料搬移路徑Blk_Data所提供給主動區塊A0的資料量係動態調配。以下更詳細討論之。
相較於傳統技術同時配置主動區塊A0以及主動區塊A1,如本案善用主動區塊A0有數種優點,並描述如下。
首先,本案中主動區塊A0不只可以儲存來自主機以寫入指令要求寫入的使用者資料,更可以儲存來自來源區塊的使用者資料,因此,可降低閒置區塊的使用量。
在傳統有使用主動區塊A1的例子中,因應突發斷電事件,突發斷電事件回復(Sudden Power Off Recovery,SPOR)程序須特別考量資料可靠度,會捨棄尚未關閉(Closed)的主動區塊A1,仍以來源區塊上的使用者資料為準。因此,只要主動區塊A1尚未關閉,資料搬移程序中的所有來源區塊都必須留存,不能釋出。上述設計明顯地拖累來源區塊的回收,造成閒置區塊數量無法及時地增加,甚至導致不同種類的資料搬移程序的啟動。
相較傳統技術,本案是以主動區塊A0作為資料搬移程序中的目的區塊。突發斷電事件回復(SPOR)程序不會全然丟棄該主動區塊A0。在資料搬移完成後,資料搬移程序中的來源區塊即可回收,無須為了SPOR程序而留存。因此,相較於傳統特別再以主動區塊A1作為目的區塊的技術,本案的閒置區塊數量可有效地增加,克服上述問題。
此外,傳統技術為了令作為目的區塊的主動區塊A1及早關閉,可能會填入部份虛假資料(dummy data),這將降低資料區塊的資料儲存量,也增加區塊的抹寫頻率,縮短快閃記憶體壽命。相較之,以主動區塊A0作資料搬移程序的目的地,可以避免虛假資料的寫入,克服上述問題。
一種實施方式中,控制器104令一來源區塊(無論屬垃圾回收或非垃圾回收)的有效資料完全搬移到該主動區塊A0後,方允許另一來源區塊(無論屬垃圾回收或非垃圾回收)的有效資料搬移到該主動區塊A0。
本案特別令同一來源區塊的有效資料係分批搬移至主動區塊A0。各批次間,主機要求的寫入資料可填入該主動區塊A0。有效資料搬移以及來自主機之寫入資料的填寫之間可存在比例關係。本案適應性設定該比例關係。若發生資料搬移需求的來源區塊並不只單一個,本案提高單批次所搬移的有效資料量,及早結束當前來源區塊之有效資料搬移,以應付下一個來源區塊。
第1圖中,主機106要求的寫入資料係經主機寫入資料路徑Host_Data)。垃圾回收、錯誤更正失效搬移、預防性搬移、損耗平均搬移等等,各種以主動區塊A0為目的地的有效資料搬移,在第1圖是以資料搬移路徑Blk_Data表示。凡是自資料區塊池110選定資料區塊作為來源區塊,將其中有效資料搬移到主動區塊A0者,都屬於該資料搬移路徑Blk_Data所涵蓋技術。本案係動態調配路徑Host_Data以及路徑Blk_Data之使用。
一種實施方式中,控制器104在前一個來源區塊搬移完畢後,又允許其他來源區塊同樣以主動區塊A0為有效資料搬移目的地。例如,一來源區塊的垃圾回收完成後,控制器104允許另一個來源區塊以同樣的主動區塊A0為目的地,進行非垃圾回收(錯誤更正失效搬移、預防性搬移、損耗平均搬移等等)的有效資料搬移。例如,對一來源區塊進行非垃圾回收的有效資料搬移後,控制器104允許另一個來源區塊以同樣的主動區塊A0為目的地,再次實施非垃圾回收的有效資料搬移。如此一來,主動區塊A0關閉(例如,以是否完成EOB資訊為判斷標準)前,閒置區塊數量有機會被充分補充(可補充不只一個閒置區塊)。
一種實施方式中,同一來源區塊的有效資料係分批搬移至主動區塊A0。各批次間,主機106要求的寫入資料填入該主動區塊A0。或者,各批次間,控制器104是令該快閃記憶體102回覆主機106的讀取要求。不同批次的間距可以由寫入該主動區塊A0的主機106資料量決定、或是計時定義。批次間可能有新的有效資料搬移需求發生。控制器104是待當前來源區塊的批次搬移結束後,才會處理另一個來源區塊的批次搬移。
一種實施方式中,該控制器104根據一來源區塊的有效資料量以及該主動區塊A0的閒置空間估算一比例,並根據該比例設定各批次搬移的有效資料量。根據該比例,該控制器104更可設定兩個批次之間允許該主機106填入該主動區塊A0的寫入資料量。
面臨資料搬移需求的來源區塊可能不只單一個。一種實施方式動態調配上述比例,對正要處理的該個來源區塊作設定,決定各批次搬移的有效資料量。一種實施方式中,有資料搬移需求的來源區塊有兩個。第一來源區塊的有效資料有x頁。該主動區塊A0有y頁閒置空間。本案可估算出一比例x:(y-x),等效為1:n。本案可調整該比例為a:n,a為大於一常態值的數值。例如,常態值可為1,a可為2。考量快閃記憶體102程式化(包括主機106寫入以及來源區塊搬移)的反應時間,本案發展出的搬移策略為:每將a*M頁有效資料自第一來源區塊搬移到主動區塊A0(對應路徑Blk_Data),即穿插以主動區塊A0儲存主機106發下的n*M頁寫入資料(對應路徑Host_Data)。倍數a使得第一來源區塊的有效資料及早收集至主動區塊A0。控制器104得以及時進行第二來源區塊的有效資料搬移。控制器104將針對第二來源區塊的有效資料量以及主動區塊A0此時的閒置空間,估算出新的比例。控制器104也會確認是否又有其他來源區塊待搬移,以調整該比例,產生適合該第二來源區塊的搬移策略。
一種實施方式中,第一來源區塊設定搬移策略時,不只有第二來源區塊在等待,更有第三來源區塊需要搬移。a值可設定成更大(相較於只有第一以及第二來源區塊的例子)。
快閃記憶體102程式化(包括主機106寫入以及來源區塊搬移)的反應時間受到多種因素影響。本案特別考量該反應時間,設定前述M值。一種實施方式中,一次程式化M頁可使快閃記憶體102寫入時序最佳化。例如,在等待第一筆M頁程式化的確收回應時,第二筆M頁即可快取至控制器104等待存入該快閃記憶體102:操作效能遠優於單頁程式化。
一種實施方式中,控制器104是優先進行資料搬移,次而才考量主機106之寫入要求。例如,一有需要資料搬移的來源區塊,控制器104評估出搬移策略後,即進行第一批資料搬移。第一批資料搬移結束後,才允許再接收主機106要求的寫入資料。此設計確保同一來源區塊收集在同一主動區塊A0上。
第2圖以流程圖圖解根據本案一種實施方式對快閃記憶體102所實施的資料搬移。
步驟S202:控制器104配置主動區塊A0。控制器104自閒置區塊池108配置其中之一閒置區塊作為主動區塊A0。
步驟S204:控制器104判斷是否執行資料搬移程序?如果是則執行步驟S212,如果否則執行步驟S206。當預設條件滿足時,例如,閒置區塊數量少於臨界數量TH1,或是產生錯誤更正失效搬移、預防性搬移、損耗平均搬移任一,則控制器104啟動(執行)資料搬移程序。
步驟S206:控制器104判斷是否關閉主動區塊A0?如果是則執行步驟S210,如果否則執行步驟S208。假如主動區塊A0仍有閒置空間以儲存資料,則控制器104不關閉主動區塊A0。
步驟S208:控制器104將來自主機106的使用者資料寫入主動區塊A0,之後,回到步驟S204。在上述中控制器104先執行步驟S204,之後,才會執行步驟S206以及步驟S208/S210,這表示控制器104會優先搬移資料搬移程序的使用者資料。在另一實施例中,控制器104可將步驟S204排在主機106使用者資料填寫之後;在此設定下,控制器104會優先將主機106的使用者資料寫入主動區塊A0。
步驟S210:控制器104關閉主動區塊A0。假如主動區塊A0已無閒置空間以儲存資料,則控制器104關閉主動區塊A0,並將EOB資訊寫入主動區塊A0的最後一個頁面中。
倘若步驟S204顯示存在資料搬移需求,流程進入步驟S212,規劃一來源區塊之有效資料的搬移策略。控制器104除了考量來源區塊的有效資料量、主動區塊A0的閒置狀況,更考量是否還有更多來源區塊待搬移。控制器104因而評估得一搬移策略。例如,每搬移a*M頁有效資料,即穿插n*M頁的主機106寫入資料。步驟S214以及步驟S216即反覆執行以完成該搬移策略。
步驟S214以主動區塊A0為目的地,搬移來源區塊的a*M頁有效資料。步驟S216,主動區塊A0重啟對主機106發來的寫入資料之接收工作。控制器104允許主機106要求的n*M頁寫入資料填入該主動區塊A0。步驟S218,控制器104判斷是否完成該來源區塊的有效資料搬移。若否,流程回到步驟S214,繼續下一批次a*M頁的有效資料搬移。若步驟S218判定該來源區塊的有效資料搬移完成,流程進入步驟S204以及其後步驟,規劃如何使用主動區塊A0空間應付另一個資料搬移需求。
一種實施方式中,步驟S216可以包括一時限判斷。超過該時限,流程即進行步驟S218。
第3圖更根據本案一種實施方式詳細說明步驟S212,其中決定步驟S214各批次所進行的資料搬移頁數a*M、以及步驟S216所穿插的主機106寫入頁數n*M。
步驟S302,該控制器104根據來源區塊的有效資料量以及該主動區塊A0的閒置空間估算一比例1:n。例如,來源區塊的有效資料有x頁。主動區塊A0有y頁閒置空間。根據步驟S302,控制器104估算出一比例x:(y-x),等效為1:n。
步驟S304,控制器104判斷是否有複數個來源區塊有資料搬移需求。若否,流程進入步驟S306。控制器104令數值a為一常態值(例如,1),表示無加速搬移的必要。反之,若有複數個來源區塊需要搬移,流程進入步驟S308。控制器104令數值a大於該常態值(例如,2),以加速搬移。越多來源區塊等待資料搬移,數值a可設定越大。
第3圖程序所求出的n值以及所規劃的a值,即套用於步驟S214以及S216,決定各批次進行的資料搬移頁數a*M、以及各批次間允許穿插的主機106寫入頁數n*M。
使用者操作習慣可能導致裝置反覆斷電、上電(稱為power cycling)。例如,手機使用者開蓋查看信息又蓋上。閒置區塊大量消耗,發生垃圾回收需求。特定區塊也有可能過於頻繁讀取,導致錯誤更正失效(ECC failed)搬移、預防性搬移(early move)、損耗平均(wear leveling)搬移、或是其他有效資料搬移求發生。本案使得過低的閒置區塊數量得以及時補足。
以上控制器104對快閃記憶體102之操作也可以由其他結構實現。凡是動態調配主動區塊A0之使用方式(例如,動態調配路徑Blk_Data以及路徑Host_Data之使用比例),都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存裝置;102:快閃記憶體;104:控制器;106:主機;108:閒置區塊池;110:資料區塊池;A0:主動區塊;Blk_Data:資料搬移路徑;Host_Data:主機寫入資料路徑;S202…S218、S302…S308:步驟。
第1圖根據本案一種實施方式圖解一資料儲存裝置100; 第2圖以流程圖圖解根據本案一種實施方式對快閃記憶體102所實施的資料搬移;以及 第3圖更根據本案一種實施方式詳細說明步驟S208,其中將決定步驟S210各批次所進行的資料搬移頁數a*M、以及步驟S212所穿插的主機106寫入頁數n*M。
100:資料儲存裝置
102:快閃記憶體
104:控制器
106:主機
108:閒置區塊池
110:資料區塊池
A0:主動區塊
Blk_Data:資料搬移路徑
Host_Data:主機寫入資料路徑
Claims (18)
- 一種資料儲存裝置,包括: 一非揮發式記憶體;以及 一控制器,根據一主機之要求操作該非揮發式記憶體, 其中: 該控制器自該非揮發式記憶體的複數個閒置區塊配置一主動區塊填寫該主機要求的寫入資料; 該控制器更以該主動區塊作為該非揮發式記憶體中一第一來源區塊的有效資料的搬移目的地; 該控制器以複數批次搬移該第一來源區塊的有效資料至該主動區塊,並在不同批次間允許該主機要求的寫入資料填入該主動區塊; 該控制器在沒有一第二來源區塊存在時,令搬移該第一來源區塊的上述批次各自搬移一第一資料量; 該控制器在存在該第二來源區塊時,令搬移該第一來源區塊的上述批次各自搬移一第二資料量;且 該第二資料量高於該第一資料量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該控制器在更存在一第三來源區塊時,調升該第二資料量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該控制器令該第一來源區塊的有效資料完全搬移到該主動區塊後,方允許該第二來源區塊的有效資料搬移到該主動區塊。
- 如申請專利範圍第3項所述之資料儲存裝置,其中: 該控制器是在搬移該第一來源區塊的有效資料之初,就設定搬移該第一來源區塊的上述批次各自搬移的資料量。
- 如申請專利範圍第4項所述之資料儲存裝置,其中: 該控制器根據該第一來源區塊的有效頁數x以及該主動區塊的閒置頁數y估算一比例x:(y-x),等效為1:n; 該控制器根據來源區塊的總數設定一數值a; 該控制器在僅該第一來源區塊存在時,設定該數值a為一常態值,並在不只該第一來源區塊存在時,設定該數值a大於該常態值;並且 該控制器以一比例a:n實行該第一來源區塊一批次的搬移以及該主機要求的寫入資料之寫入。
- 如申請專利範圍第5項所述之資料儲存裝置,其中: 該控制器更根據該非揮發式記憶體程式化的反應時間設定一數值M;且 該控制器自該第一來源區塊搬移a*M頁有效資料至該主動區塊後,允許該主機要求的n*M頁寫入資料填入該主動區塊。
- 如申請專利範圍第6項所述之資料儲存裝置,其中: 該控制器估算上述數值a*M以及n*M後,先搬移a*M頁有效資料至該主動區塊,方允許該主機要求的n*M頁寫入資料填入該主動區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 來源區塊之選定,係因應該等閒置區塊之數量小於一臨界數量、或發現錯誤更正失效、或進行預防性搬移、或滿足損耗平均。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該控制器將該第一來源區塊的有效資料全數搬移到該主動區塊後,是在該主動區塊完成結尾寫入前釋出該第一來源區塊為閒置區塊。
- 一種非揮發式記憶體控制方法,包括: 根據一主機之要求操作一非揮發式記憶體; 自該非揮發式記憶體的複數個閒置區塊配置一主動區塊填寫該主機要求的寫入資料; 更以該主動區塊作為該非揮發式記憶體中一第一來源區塊的有效資料的搬移目的地; 以複數批次搬移該第一來源區塊的有效資料至該主動區塊,並在不同批次間允許該主機要求的寫入資料填入該主動區塊; 在沒有一第二來源區塊存在時,令搬移該第一來源區塊的上述批次各自搬移一第一資料量;且 在存在該第二來源區塊時,令搬移該第一來源區塊的上述批次各自搬移一第二資料量, 其中,該第二資料量高於該第一資料量。
- 如申請專利範圍第10項所述之非揮發式記憶體控制方法,更包括: 在更存在一第三來源區塊時,調升該第二資料量。
- 如申請專利範圍第10項所述之非揮發式記憶體控制方法,更包括: 令該第一來源區塊的有效資料完全搬移到該主動區塊後,方允許該第二來源區塊的有效資料搬移到該主動區塊。
- 如申請專利範圍第12項所述之非揮發式記憶體控制方法,更包括: 在搬移該第一來源區塊的有效資料之初,就設定搬移該第一來源區塊的上述批次各自搬移的資料量。
- 如申請專利範圍第13項所述之非揮發式記憶體控制方法,更包括: 根據該第一來源區塊的有效頁數x以及該主動區塊的閒置頁數y估算一比例x:(y-x),等效為1:n; 根據來源區塊的總數設定一數值a; 僅該第一來源區塊存在時,設定該數值a為一常態值,並在不只該第一來源區塊存在時,設定該數值a大於該常態值;並且 以一比例a:n實行該第一來源區塊一批次的搬移以及該主機要求的寫入資料之寫入。
- 如申請專利範圍第14項所述之非揮發式記憶體控制方法,更包括: 根據該非揮發式記憶體程式化的反應時間設定一數值M;且 自該第一來源區塊搬移a*M頁有效資料至該主動區塊後,允許該主機要求的n*M頁寫入資料填入該主動區塊。
- 如申請專利範圍第15項所述之非揮發式記憶體控制方法,更包括: 估算上述數值a*M以及n*M後,先搬移a*M頁有效資料至該主動區塊,方允許該主機要求的n*M頁寫入資料填入該主動區塊。
- 如申請專利範圍第10項所述之非揮發式記憶體控制方法,其中: 來源區塊之選定,係因應該等閒置區塊之數量小於一臨界數量、或發現錯誤更正失效、或進行預防性搬移、或滿足損耗平均。
- 如申請專利範圍第10項所述之非揮發式記憶體控制方法,更包括: 將該第一來源區塊的有效資料全數搬移到該主動區塊後,在該主動區塊完成結尾寫入前釋出該第一來源區塊為閒置區塊。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910445239.2A CN110888593B (zh) | 2018-09-07 | 2019-05-27 | 数据储存装置以及非挥发式存储器控制方法 |
| US16/505,192 US11036414B2 (en) | 2018-09-07 | 2019-07-08 | Data storage device and control method for non-volatile memory with high-efficiency garbage collection |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862728134P | 2018-09-07 | 2018-09-07 | |
| US62/728,134 | 2018-09-07 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202011199A true TW202011199A (zh) | 2020-03-16 |
| TWI712882B TWI712882B (zh) | 2020-12-11 |
Family
ID=70766513
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108106466A TWI696916B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| TW109116356A TWI768346B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| TW108107912A TWI714975B (zh) | 2018-09-07 | 2019-03-08 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| TW108107913A TWI712882B (zh) | 2018-09-07 | 2019-03-08 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Family Applications Before (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108106466A TWI696916B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| TW109116356A TWI768346B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| TW108107912A TWI714975B (zh) | 2018-09-07 | 2019-03-08 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (4) | TWI696916B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI748542B (zh) * | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
| US11307982B2 (en) | 2020-09-09 | 2022-04-19 | Phison Electronics Corp. | Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11809314B2 (en) * | 2021-11-21 | 2023-11-07 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
| US8626936B2 (en) * | 2008-01-23 | 2014-01-07 | International Business Machines Corporation | Protocol independent server replacement and replication in a storage area network |
| CN101645309B (zh) * | 2008-08-05 | 2013-05-22 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
| US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
| US8463826B2 (en) * | 2009-09-03 | 2013-06-11 | Apple Inc. | Incremental garbage collection for non-volatile memories |
| US8463983B2 (en) * | 2009-09-15 | 2013-06-11 | International Business Machines Corporation | Container marker scheme for reducing write amplification in solid state devices |
| KR101774496B1 (ko) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 |
| US20120297121A1 (en) * | 2011-05-17 | 2012-11-22 | Sergey Anatolievich Gorobets | Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions |
| KR20130076429A (ko) * | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
| TWI526830B (zh) * | 2013-11-14 | 2016-03-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| CN104732153B (zh) * | 2013-12-18 | 2018-01-12 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
| TWI524183B (zh) * | 2014-01-09 | 2016-03-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| JP2016184402A (ja) * | 2015-03-26 | 2016-10-20 | パナソニックIpマネジメント株式会社 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法 |
| TWI563507B (en) * | 2015-07-01 | 2016-12-21 | Phison Electronics Corp | Memory management method, memory control circuit unit and memry storage apparatus |
| US10102119B2 (en) * | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
| US20170123666A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for managing maintenance scheduling in a non-volatile memory |
| US9778855B2 (en) * | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
| US10229049B2 (en) * | 2015-12-17 | 2019-03-12 | Toshiba Memory Corporation | Storage system that performs host-initiated garbage collection |
| CN107025941A (zh) * | 2016-01-29 | 2017-08-08 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路 |
| CN107817943B (zh) * | 2016-09-13 | 2020-12-15 | 深圳大心电子科技有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
| TWI691839B (zh) * | 2016-11-28 | 2020-04-21 | 慧榮科技股份有限公司 | 資料管理方法 |
| US10318423B2 (en) * | 2016-12-14 | 2019-06-11 | Macronix International Co., Ltd. | Methods and systems for managing physical information of memory units in a memory device |
| TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI613652B (zh) * | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
-
2019
- 2019-02-26 TW TW108106466A patent/TWI696916B/zh active
- 2019-02-26 TW TW109116356A patent/TWI768346B/zh active
- 2019-03-08 TW TW108107912A patent/TWI714975B/zh active
- 2019-03-08 TW TW108107913A patent/TWI712882B/zh active
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI748542B (zh) * | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
| US11194502B1 (en) | 2020-07-01 | 2021-12-07 | Silicon Motion, Inc. | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module |
| US11307982B2 (en) | 2020-09-09 | 2022-04-19 | Phison Electronics Corp. | Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit |
| TWI775143B (zh) * | 2020-09-09 | 2022-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI712882B (zh) | 2020-12-11 |
| TW202011198A (zh) | 2020-03-16 |
| TWI768346B (zh) | 2022-06-21 |
| TWI696916B (zh) | 2020-06-21 |
| TW202036300A (zh) | 2020-10-01 |
| TWI714975B (zh) | 2021-01-01 |
| TW202011196A (zh) | 2020-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3568768B1 (en) | Directed sanitization of memory | |
| US9128618B2 (en) | Non-volatile memory controller processing new request before completing current operation, system including same, and method | |
| US10956083B2 (en) | Method and system for input-output throttling to improve quality of service in a solid state drive | |
| US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
| CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
| CN102054533A (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
| CN111373383B (zh) | 存储器高速缓存管理 | |
| KR20130032157A (ko) | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 | |
| US11334480B2 (en) | Data storage device and non-volatile memory control method | |
| CN111610931B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| CN114746835A (zh) | 用中间填充保持分区开放 | |
| TWI712882B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| TWI726381B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| CN117043753A (zh) | Zns设备中的不同写入优先级 | |
| TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| CN110888820B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| CN111610930A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| CN110888593B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| CN110888591B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| US20250217076A1 (en) | Method of controlling storage device | |
| TWI846532B (zh) | 資料儲存裝置與非揮發式記憶體控制方法 | |
| TW202533047A (zh) | 用於經改善工作負載平衡的處理頻寬分配的裝置和方法 | |
| CN121364819A (zh) | 数据存储系统及数据存储系统的操作方法 |