TWI760262B - 資料儲存裝置與資料處理方法 - Google Patents
資料儲存裝置與資料處理方法 Download PDFInfo
- Publication number
- TWI760262B TWI760262B TW110126633A TW110126633A TWI760262B TW I760262 B TWI760262 B TW I760262B TW 110126633 A TW110126633 A TW 110126633A TW 110126633 A TW110126633 A TW 110126633A TW I760262 B TWI760262 B TW I760262B
- Authority
- TW
- Taiwan
- Prior art keywords
- speed
- target
- memory
- garbage collection
- write
- Prior art date
Links
Images
Landscapes
- Memory System (AREA)
Abstract
一種記憶體控制器,用以存取快閃記憶體裝置,包括一緩衝記憶體以及一微處理器。緩衝記憶體包括至少一第一快取記憶體與一第二快取記憶體。微處理器用以控制對快閃記憶體裝置之存取。微處理器取得快閃記憶體裝置於第一操作週期所對應之空區塊數量,根據空區塊數量決定一寫入速度補償量,根據寫入速度補償量與一平衡速度決定一目標寫入速度,並且根據目標寫入速度決定一目標垃圾回收速度。微處理器更於第一操作週期根據目標寫入速度處理接收自主機裝置之一或多個寫入指令,以及於第一操作週期根據目標垃圾回收速度執行至少一垃圾回收操作。
Description
本發明係關於一種資料處理方法,尤指一種可有效控制記憶體裝置之寫入速度以避免產生顯著寫入延遲的資料處理方法。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
為了提高資料儲存裝置的存取效能,並避免產生顯著的寫入延遲而導致使用者感受不佳,本發明提出一種新穎的資料處理方法,可有效控制記憶體裝置之寫入速度,使寫入速度可保持穩定且不會因為垃圾回收(Garbage Collection,縮寫GC)的操作的執行而大幅降低,藉此可避免產生顯著的寫入延遲。
本發明之一目的在於提供一種新穎的資料處理方法,藉由控制寫入速度與控制垃圾回收速度的比例控制空區塊數量,進而達到穩定空區塊數量的效果。當空區塊數量保持穩定,寫入速度可對應地保持穩定而不會因為垃圾回收的操作的執行而大幅下降,因此可避免顯著寫入延遲的產生。
根據本發明之一實施例,一種記憶體控制器,耦接一主機裝置與一快閃記憶體裝置,用以存取快閃記憶體裝置,包括一緩衝記憶體以及一微處理器。緩衝記憶體包括至少一第一快取記憶體與一第二快取記憶體。微處理器用以控制對快閃記憶體裝置之存取。微處理器取得快閃記憶體裝置於第一操作週期所對應之空區塊數量,根據空區塊數量決定一寫入速度補償量,根據寫入速度補償量與一平衡速度決定一目標寫入速度,並且根據目標寫入速度決定一目標垃圾回收速度。微處理器更於第一操作週期根據目標寫入速度處理接收自主機裝置之一或多個寫入指令,以及於第一操作週期根據目標垃圾回收速度執行至少一垃圾回收操作。
根據本發明之另一實施例,一種資料處理方法,適用於包括一記憶體裝置以及一記憶體控制器之一資料儲存裝置,記憶體裝置包括複數記憶體區塊,該方法包括:取得一第一操作週期所對應之一空區塊數量;根據空區塊數量決定一寫入速度補償量;根據寫入速度補償量與一平衡速度決定一目標寫入速度;根據目標寫入速度決定一目標垃圾回收速度;於第一操作週期根據目標寫入速度處理接收自一主機裝置之一或多個寫入指令;以及於第一操作週期根據目標垃圾回收速度執行至少一垃圾回收操作。
根據本發明之另一實施例,一種資料儲存裝置,耦接一主機裝置,包括一快閃記憶體裝置以及一記憶體控制器。快閃記憶體裝置包括複數記憶體區塊。記憶體區塊包括複數空區塊。記憶體控制器耦接快閃記憶體裝置,用以存取快閃記憶體裝置。記憶體控制器取得一操作週期所對應之一空區塊數量,根據空區塊數量決定一寫入速度補償量,根據寫入速度補償量與一平衡速度決定一目標寫入速度,並且根據目標寫入速度決定一目標垃圾回收速度。記憶體控制器更於所述操作週期根據目標寫入速度處理接收自主機裝置之一或多個寫入指令,以及於所述操作週期根據目標垃圾回收速度執行至少一垃圾回收操作。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
501:回授路徑
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的示意圖。
第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。
第3圖係顯示根據本發明之一實施例所述之另一資料處理方法之範例流程圖。
第4圖係顯示根據本發明之一實施例所述之資料處理方法之詳細流程圖。
第5圖係顯示根據本發明之一實施例所述之回授控制系統。
第6圖係顯示根據本發明之一實施例所述之資料處理方法之另一詳細流程圖。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用以儲存一程式碼112C,而微處理器112則用以執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134。編碼器132用以對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC)。解碼器134用以將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片或晶粒,而每一個快閃記憶體晶片或晶粒包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料之運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),即,物理資料頁,其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。其中,介面邏輯118亦可被視為一前端控制器引擎,用以於記憶體控制器110與主機裝置130之間傳遞溝通訊號、傳遞主機裝置130寫入/讀取之資料、以及控制讀/寫資料的工作排程等。控制邏輯114亦可被視為一後端控制器引擎,用以於記憶體控制器110與記憶體裝置120之間傳遞溝通訊號、傳遞欲寫入/讀取自記憶體裝置120之資料、於將資料寫入記憶體裝置120前透過編碼器132執行對應之編碼操作,以及於自記憶體裝置120讀取資料後透過解碼器134對資料執行對應之解碼操作。
在一實施例中,記憶體控制器110透過介面邏輯118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus,縮寫為USB)標準、安全數位(Secure Digital,縮寫為SD)介面標準、超高速一代(Ultra High Speed-I,縮寫為UHS-I)介
面標準、超高速二代(Ultra High Speed-II,縮寫為UHS-II)介面標準、複合式快閃記憶體(Compact flash,縮寫為CF)介面標準、多媒體卡(Multimedia Card,縮寫為MMC)介面標準、嵌入式多媒體卡(Embedded Multimedia Card,縮寫為eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,縮寫為UFS)介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準。
在一實施例中,緩衝記憶體116係以隨機存取記憶體(Random Access Memory,縮寫為RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,縮寫為SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,縮寫為EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲
存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可包括單層單元(Single-Level Cell,縮寫為SLC)記憶體區塊、多層單元(Multiple-Level Cell,縮寫為MLC)記憶體區塊以及/或是三層單元(Triple-Level Cell,縮寫為TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。根據本發明之一實施例,記憶體裝置120為一立體NAND型快閃記憶體(3D NAND-type flash)。
一般而言,記憶體裝置120可邏輯性地被區分為三個區域,包含系統區域、資料區域以及備用區域。各區域可包含一或多個記憶體區塊。隸屬於系統區域之記憶體區塊係用以儲存管理記憶體裝置120所需之系統資料。隸屬於備用區域之記憶體區塊為未儲存有效資料之備用區塊(spare block),或稱空區塊。隸屬於資料區域之記憶體區塊係用以儲存自主機裝置130所接收之資料(例如,使用者資料)。記憶體控制器110可自備用區域選擇一或多個記憶體區塊作為活用的(active)記憶體區塊,或稱緩存器(buffer),用以接收並暫存資料。待活用的記憶體區塊被寫滿時,記憶體控制器110再將活用的記憶體區塊更新成資料區域的資料區塊。
由於使用者或主機裝置130可能隨時更新資料內容,因此記憶體區塊所儲存之資料可能因為主機裝置130後續的寫入操作而從有效資料變成無效資料。舉例而言,各記憶體區塊可包含複數儲存單元,其中一儲存單元的大小可對應於,例如但不限於,一邏輯資料頁的大小,或者4K位元組。假設兩個儲存
單元(例如,第一儲存單元與第二儲存單元)均指向同一邏輯資料頁,而此邏輯資料頁響應於第一寫入操作而先指向第一儲存單元,接著響應於第二寫入操作而指向第二儲存單元,則意味著此邏輯資料頁所對應的資料內容已由第一儲存單元所儲存的內容被更新為第二儲存單元所儲存的內容。因此,第二儲存單元所儲存的資料為有效資料,而第一儲存單元所儲存的資料成為無效資料。於此,前述之「指向」意味著邏輯位址與實體位址之間的映射關係。舉例而言,一個物理儲存單元UA指向一邏輯資料頁PB的物理至邏輯映射關係意味著此物理儲存單元UA所儲存的資料內容為此邏輯資料頁PB所對應的資料。類似地,一邏輯資料頁PB指向一個物理儲存單元UA的邏輯至物理映射關係意味著此邏輯資料頁PB所對應的資料實際上被儲存於物理儲存單元UA。當一個物理儲存單元的物理至邏輯映射關係與其所指向之邏輯資料頁的邏輯至物理映射關係相符時,此物理儲存單元所儲存的資料為有效資料。前述邏輯位址與實體位址之間的映射關係可由記憶體控制器110紀錄於一或多個映射表格,映射表格可被儲存於緩衝記憶體116或記憶體裝置120,而記憶體控制器110可根據主機裝置130的寫入操作更新映射表格的內容,使映射表格可反映出最新的映射關係。
記憶體控制器110可根據一些條件觸發垃圾回收(Garbage Collection,縮寫GC)。於垃圾回收的操作中,記憶體控制器110可藉由資料搬移操作將零散分布於不同記憶體區塊(來源記憶體區塊)的有效資料集中存放於同一個記憶體區塊(目的記憶體區塊),並且將資料搬移後未儲存有效資料之記憶體區塊釋放為備用區塊,或稱空區塊。舉例而言,當一個記憶體區塊所儲存的資料均為無效資料時,記憶體控制器110可對此記憶體區塊執行抹除操作,並將其更新為備用區域之空區塊,或者標註為隸屬於備用區域之記憶體區塊。爾後,當記憶體控制器110需要新的記憶體區塊儲存資料時,記憶體控制器110可直接
自備用區域選擇一空區塊。
於先前技術中,資料儲存裝置根據空區塊數量決定是否觸發垃圾回收。然而,實際應用結果顯示出這樣的控制將造成寫入速度的巨幅變化,進而產生顯著的寫入延遲。這是由於垃圾回收的操作中包含了讀取與寫入操作,因而會占用許多資料儲存裝置的系統資源。因此,當垃圾回收被觸發時,寫入速度將會對應地下降。而當垃圾回收的執行量並未妥善規畫而導致資料儲存裝置需執行大量的垃圾回收時,寫入速度便會明顯地下降。
為解決前述問題,本發明提出一種新穎的資料處理方法,可有效地藉由適應性地控制記憶體裝置之寫入速度與垃圾回收速度而達到穩定控制空區塊數量的效果,如此可使寫入速度保持穩定且不會因為垃圾回收的操作的執行而大幅下降,因此可避免顯著寫入延遲的產生。
第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。資料處理方法可由記憶體控制器110(例如,透過微處理器112執行對應之程式碼之記憶體控制器110)所執行,並包含以下步驟:
步驟S202:取得目前的空區塊數量C。
步驟S204:根據目前的空區塊數量決定寫入速度補償量ω’。
步驟S206:根據寫入速度補償量ω’與一平衡速度ω_B決定目標寫入速度ω。
步驟S208:根據目標寫入速度ω決定目標垃圾回收速度g。
步驟S210:根據目標寫入速度ω處理接收自主機裝置之一或多個寫入指令,並響應寫入指令執行對應之一或多個寫入操作,以及根據目標垃圾回
收速度g執行垃圾回收操作。
根據本發明之一實施例,記憶體控制器110可根據系統時脈以及一操作週期內的工作規畫設計決定一個操作週期的時間長度T,其中操作週期的工作規畫設計可以是於產品規劃階段實際被編輯於程式碼112C的內容,例如,假設程式碼112C的內容中設定為於一個操作週期中需執行N行機械碼,則操作週期的長度T可等於N倍的系統時脈週期。
根據本發明之一實施例,記憶體控制器110可反覆地於開始一個新的操作週期時重新執行第2圖所示之各步驟。因此,步驟S202所取得之目前的空區塊數量C可以是對應於目前操作週期所取得的結果(即,於不同的操作週期所取得的空區塊數量C可能是相同的數值,也可能是不同的數值),並且於決定出目標寫入速度ω與目標垃圾回收速度g後,記憶體控制器110可於步驟S210根據目標寫入速度ω與目標垃圾回收速度g於目前操作週期內完成將來自主機裝置之資料(即,寫入資料,或稱主機資料)寫入記憶體裝置120的寫入操作以及一既定數量之垃圾回收操作。於目前操作週期結束後,記憶體控制器110可重新取得次一操作週期所對應之空區塊數量C,並且重新決定次一操作週期所對應之寫入速度補償量ω’、目標寫入速度ω與目標垃圾回收速度g等參數,以及於次一操作週期根據重新決定之目標寫入速度ω處理接收自該主機裝置之一或多個寫入指令,並響應寫入指令執行對應之一或多個寫入操作,以及根據重新決定之目標垃圾回收速度g執行垃圾回收操作。
需注意的是,記憶體控制器110亦可被設計為於執行完寫入操作與垃圾回收操作後,再取得目前的空區塊數量C,而此時取得的空區塊數量C將提供
給下一個操作週期使用。因此,本發明並不限於第2圖所示的執行次序。例如,假若可獲得實質上相同的結果,步驟S202的執行順序可安排於步驟S210之後。
根據本發明之一實施例,微處理器112可以是一雙核心微處理器。其中第一核心可被配置用以執行步驟S202~S208。即,決定出目前操作週期所關聯之目標寫入速度ω與目標垃圾回收速度g,並根據該些速度配置於此操作週期所使用之快取記憶體的大小。第二核心可被配置用以執行步驟S210。即,於快取記憶體被配置完後,開始執行主機寫入操作,利用快取記憶體暫存接收自主機裝置之寫入資料,並將快取記憶體所暫存之資料寫入記憶體裝置120,以及利用快取記憶體執行垃圾回收操作,用以在寫入操作消耗空區塊的同時,釋放出新產生的空區塊。
更具體的說,由於目標寫入速度ω與目標垃圾回收速度g可分別由單位時間內的處理資料量所定義,例如,於一個操作週期的時間長度內,預計將多少主機資料寫入,以及於一個操作週期的的時間長度內,預計要產生多少新的空區塊,因此,目標寫入速度ω與目標垃圾回收速度g實際上係分別相關於微處理器112於一個操作週期內被指定要處理的主機資料量與垃圾回收資料量。因此,第一核心於決定出目前操作週期所關聯之目標寫入速度ω與目標垃圾回收速度g後,可根據該些速度配置於此操作週期所使用之快取記憶體的大小。
舉例而言,記憶體控制器110(或,微處理器112之第一核心)可根據目標寫入速度ω配置於目前操作週期所使用之第一快取記憶體的大小,此第一快取記憶體係用以暫存來自主機裝置130之寫入資料(即,主機資料)以輔助記憶體控制器110執行一或多個寫入指令,以及根據目標垃圾回收速度g配置於目前操作
週期所使用之第二快取記憶體的大小,此第二快取記憶體係用以輔助記憶體控制器110執行垃圾回收操作,例如,用來暫存自多個記憶體區塊所收集到的有效資料。
根據本發明之一實施例,記憶體控制器110可於緩衝記憶體116或者一外部隨機存取記憶體(包含於資料處理裝置100內但配置於記憶體控制器110外部,圖未示)配置兩個既定的儲存空間,用以作為前述之第一快取記憶體與第二快取記憶體,並且於每個操作週期動態地根據目前決定出的目標寫入速度ω與目標垃圾回收速度g配置第一快取記憶體與第二快取記憶體的使用範圍(可使用的記憶空間大小),藉由動態地於每個操作週期根據最新決定的速度限制快取記憶體的使用範圍,進而達到控制寫入速度與垃圾回收速度的結果。
根據本發明之一實施例,由於記憶體控制器110動態地於每個操作週期重新決定目標寫入速度ω與目標垃圾回收速度g,因此,於兩操作週期所決定出的目標寫入速度ω可以是相同的數值,也可以是不同的數值。同理,於兩操作週期所決定出的目標垃圾回收速度可以是相同的數值,也可以是不同的數值。
此外,於本發明之實施例中,平衡速度ω_B可與記憶體裝置120之讀取速度及/或寫入速度相關。以下將更詳細地介紹各參數的決定方法。
第3圖係顯示根據本發明之一實施例所述之另一資料處理方法之範例流程圖,用以說明執行本發明所提出之資料處理方法的開始與結束條件。
步驟S302:執行一般垃圾回收操作。
步驟S304:判斷目前的空區塊數量C是否少於一臨界值Cth,其中臨
界值Cth可根據系統需求設計。於本發明之一實施例中,記憶體控制器110可於垃圾回收操作結束後執行步驟S304之判斷。若是,則執行步驟S306。若否,則執行步驟S302。
步驟S306:應用本發明所提出之資料處理方法,例如,執行如第2圖所示之流程。
步驟S308:判斷目標寫入速度ω是否大於主機裝置130所要求的資料寫入速度ωhost。主機裝置130可藉由一指令或一信號通知記憶體控制器110其所要求的資料寫入速度ωhost,資料寫入速度ωhost可由單位時間內主機裝置130所要求的寫入資料量所定義,因此,資料寫入速度ωhost實際上係與主機裝置130所要求的寫入資料量或者所發出的寫入指令相關。若是,則表示經由應用本發明所提出之資料處理方法後,記憶體控制器110被設定的目標寫入速度ω已大於主機裝置130所要求的資料寫入速度ωhost。由於寫入速度ω已被調整到足夠應付主機裝置130所要求的資料寫入速度ωhost,因此可結束本發明所提出之資料處理方法。若否,則需繼續應用本發明所提出之資料處理方法,使得寫入速度ω可被妥善控制並且保持穩定。
第4圖係顯示根據本發明之一實施例所述之資料處理方法之詳細流程圖,用以說明資料處理方法的詳細操作。資料處理方法可由記憶體控制器110或雙核心的微處理器112所執行,並包含以下步驟:
步驟S402:取得目前的空區塊數量C。
步驟S404:計算空區塊數量C與臨界值Cth的差值。
步驟S406:將差值乘上一比例控制參數K以決定出寫入速度補償量ω’。根據本發明之一實施例,比例控制參數K係用以放大前述差值,當比例控制參數K越大,比例控制器的反應速度越快。於本發明之實施例中,只要選擇之比
例控制參數K可滿足條件K*(C-Cth)ωmax,則比例控制參數K可任意選擇,其中ωmax為資料處理裝置100可支援的最高寫入速度。
步驟S410:根據目標寫入速度ω配置於目前操作週期提供執行寫入操作使用之快取記憶體的大小。
步驟S412:計算目標垃圾回收速度g=β(ω max -ω)。
步驟S414:根據目標垃圾回收速度g配置於目前操作週期提供執行垃圾回收操作使用之快取記憶體的大小。
根據本發明之一實施例,假設T SR 為讀取SLC記憶體區塊的一個儲存單元的資料所需的時間,T SP 為寫入SLC記憶體區塊的一個儲存單元的資料所需的時間,T TR 為讀取TLC記憶體區塊的一個儲存單元的資料所需的時間,T TP 為寫入TLC記憶體區塊的一個儲存單元的資料所需的時間,T為一個操作週期的時間。則β可根據以下表格1所示的內容計算:
表格1:β的計算方法
表格左側的SLC代表接收主機資料所使用之活用的記憶體區塊為SLC記憶體區塊,TLC代表接收主機資料所使用之活用的記憶體區塊為TLC記憶體區塊,情境1代表垃圾回收的操作中的來源記憶體區塊為SLC記憶體區塊,目的記憶體區塊為SLC記憶體區塊,情境2代表垃圾回收的操作中的來源記憶體區塊為SLC記憶體區塊,目的記憶體區塊為TLC記憶體區塊,情境3代表垃圾回收的操作中的來源記憶體區塊為TLC記憶體區塊,目的記憶體區塊為SLC記憶體區塊,情境4代表垃圾回收的操作中的來源記憶體區塊為TLC記憶體區塊,目的記憶體區塊為TLC記憶體區塊。依照目前資料儲存裝置所配置的活用的記憶體區塊類型、來源記憶體區塊類型以及目的記憶體區塊類型,可計算出對應的比值β。
同樣地,表格左側的SLC代表接收主機資料所使用之活用的記憶體區塊為SLC記憶體區塊,TLC代表接收主機資料所使用之活用的記憶體區塊為TLC記憶體區塊。依照目前資料儲存裝置所配置的活用的記憶體區塊類型,可計
算出對應的最高寫入速度ωmax。
第5圖係顯示根據本發明之一實施例所述之回授控制系統,此回授控制系統可由一比例控制器完成。如圖所示,目前的空區塊數量C透過回授路徑501回授給比例控制器,比例控制器將臨界值Cth減去目前的空區塊數量C所得的差值乘以-K得到寫入速度補償量ω’,再將寫入速度補償量ω’與平衡速度ω_B相加得到目標寫入速度ω。比例控制器另根據目標寫入速度ω如步驟S412所示推導出目標垃圾回收速度g,最後再根據所得之目標寫入速度ω與目標垃圾回收速度g執行速度配置(相當於快取記憶體的配置)。待一個操作週期結束後,目前的空區塊數量C會因已執行的寫入操作與行垃圾回收操作結果被更新,並且再透過回授路徑501回授給比例控制器。
本發明之一精神在於,藉由控制寫入速度(相當於寫入記憶體裝置120的主機資料量)與控制垃圾回收速度(相當於執行垃圾回收操作程序中所處理的資料量)的比例,空區塊的數量可被穩定地控制住。當空區塊的數量被穩定地控制時,例如,於一或多個操作週期後將空區塊的數量控制為一定值,寫入速度便可保持穩定且不會如先前技術因為垃圾回收的操作的執行而大幅降低,藉此可避免產生顯著的寫入延遲,有效解決先前技術的問題。
第6圖係顯示根據本發明之一實施例所述之資料處理方法之另一詳細流程圖。第6圖所顯示之流程步驟與第4圖類似,其中步驟S602~S614與步驟S402~S414相同。因此,相關的內容可參考第4圖的說明段落,於此不再贅述。
於此實施例中,加入了目標寫入速度ω是否大於主機裝置130所要求
的資料寫入速度ωhost的判斷。如圖所示,於步驟S608中計算出目標寫入速度ω後,記憶體控制器110或微處理器112可進一步執行以下步驟:
步驟S616:取得目前主機裝置130所要求的資料寫入速度ωhost(如圖中所示之目前的主機資料寫入速度ωhost,其可由單位時間內主機裝置130所要求的寫入資料量所定義)。
步驟S618:判斷目標寫入速度ω是否大於主機裝置130所要求的資料寫入速度ωhost。若是,則流程結束。若否,則執行步驟S610,進一步根據目標寫入速度ω配置於目前操作週期提供執行寫入操作使用之快取記憶體的大小。
綜上所述,本發明所提出之資料處理方法可有效地藉由根據目前的空區塊數量與目前配置的活用的記憶體區塊類型、來源記憶體區塊類型以及目的記憶體區塊類型等資訊適應性地控制記憶體裝置之寫入速度與垃圾回收速度,進而達到穩定控制空區塊數量的效果,如此可使寫入速度保持穩定且不會因為垃圾回收的操作的執行而大幅下降,因此可避免顯著寫入延遲的產生。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (7)
- 一種記憶體控制器,耦接一主機裝置與一快閃記憶體裝置,用以存取該快閃記憶體裝置,包括:一緩衝記憶體,包括至少一第一快取記憶體與一第二快取記憶體;以及一微處理器,用以控制對該快閃記憶體裝置之存取,其中該微處理器取得該快閃記憶體裝置於一第一操作週期所對應之一空區塊數量,根據該空區塊數量決定一目標寫入速度,並且根據該目標寫入速度決定一目標垃圾回收速度,其中該微處理器更於該第一操作週期根據該目標寫入速度處理接收自該主機裝置之一或多個寫入指令,以及於該第一操作週期根據該目標垃圾回收速度執行至少一垃圾回收操作;以及該微處理器更根據該目標寫入速度與該目標垃圾回收速度配置於該第一操作週期所使用之該第一快取記憶體的大小與該第二快取記憶體的大小,其中該第一快取記憶體用以暫存來自該主機裝置之寫入資料以輔助該微處理器執行該一或多個寫入指令,並且該第二快取記憶體用以輔助該微處理器執行該至少一垃圾回收操作。
- 如申請專利範圍第1項所述之記憶體控制器,其中該微處理器更取得一第二操作週期所對應之該空區塊數量,根據該空區塊數量重新決定該目標寫入速度,並且根據重新決定之該目標寫入速度重新決定該目標垃圾回收速度,並且其中該微處理器更於該第二操作週期根據重新決定之該目標寫入速度處理接收自該主機裝置之一或多個寫入指令,以及於該第二操作週期根據重新決定之該目標垃圾回收速度執行該至少一垃圾回收操作。
- 如申請專利範圍第2項所述之記憶體控制器,其中於該第一 操作週期決定之該目標寫入速度與於該第二操作週期重新決定之該目標寫入速度不同。
- 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該等記憶體區塊包括複數空區塊,該方法包括:取得一第一操作週期所對應之一空區塊數量;根據該空區塊數量決定一目標垃圾回收速度;根據一目標寫入速度配置於該第一操作週期所使用之一第一快取記憶體的大小,其中該第一快取記憶體用以暫存來自一主機裝置之寫入資料以輔助該記憶體控制器執行一或多個寫入指令;以及根據該目標垃圾回收速度配置於該第一操作週期所使用之一第二快取記憶體的大小,其中該第二快取記憶體用以輔助該記憶體控制器執行至少一垃圾回收操作。
- 如申請專利範圍第4項所述之資料處理方法,更包括:取得一第二操作週期所對應之該空區塊數量;根據該空區塊數量重新決定該目標寫入速度;根據重新決定之該目標寫入速度重新決定該目標垃圾回收速度;以及於該第二操作週期根據重新決定之該目標寫入速度處理接收自該主機裝置之一或多個寫入指令,以及於該第二操作週期根據重新決定之該目標垃圾回收速度執行該至少一垃圾回收操作。
- 如申請專利範圍第5項所述之資料處理方法,其中於該第一操作週期決定之該目標寫入速度與於該第二操作週期重新決定之該目標寫入速 度不同。
- 一種資料儲存裝置,耦接一主機裝置,包括:一快閃記憶體裝置,包括複數記憶體區塊,其中該等記憶體區塊包括複數空區塊;以及一記憶體控制器,耦接該快閃記憶體裝置,用以存取該快閃記憶體裝置,其中該記憶體控制器取得一操作週期所對應之一空區塊數量,根據該空區塊數量決定一目標垃圾回收速度,其中該記憶體控制器更於該操作週期根據一目標寫入速度處理接收自該主機裝置之一或多個寫入指令,以及於該操作週期根據該目標垃圾回收速度執行至少一垃圾回收操作;以及該記憶體控制器更根據該目標寫入速度與該目標垃圾回收速度配置於該第一操作週期所使用之一第一快取記憶體的大小與一第二快取記憶體的大小,其中該第一快取記憶體用以暫存來自該主機裝置之寫入資料以輔助執行該一或多個寫入指令,並且該第二快取記憶體用以輔助執行該至少一垃圾回收操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126633A TWI760262B (zh) | 2020-07-29 | 2020-07-29 | 資料儲存裝置與資料處理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126633A TWI760262B (zh) | 2020-07-29 | 2020-07-29 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202205293A TW202205293A (zh) | 2022-02-01 |
TWI760262B true TWI760262B (zh) | 2022-04-01 |
Family
ID=81323415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110126633A TWI760262B (zh) | 2020-07-29 | 2020-07-29 | 資料儲存裝置與資料處理方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI760262B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
US8700949B2 (en) * | 2010-03-30 | 2014-04-15 | International Business Machines Corporation | Reliability scheme using hybrid SSD/HDD replication with log structured management |
US20140181455A1 (en) * | 2012-12-20 | 2014-06-26 | Apple Inc. | Category based space allocation for multiple storage devices |
US8990458B2 (en) * | 2013-02-28 | 2015-03-24 | Kabushiki Kaisha Toshiba | Controller, semiconductor storage device and method of controlling data writing |
TW201814528A (zh) * | 2016-09-19 | 2018-04-16 | 三星電子股份有限公司 | 儲存裝置及其操作方法 |
-
2020
- 2020-07-29 TW TW110126633A patent/TWI760262B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
US8700949B2 (en) * | 2010-03-30 | 2014-04-15 | International Business Machines Corporation | Reliability scheme using hybrid SSD/HDD replication with log structured management |
US20140181455A1 (en) * | 2012-12-20 | 2014-06-26 | Apple Inc. | Category based space allocation for multiple storage devices |
US8990458B2 (en) * | 2013-02-28 | 2015-03-24 | Kabushiki Kaisha Toshiba | Controller, semiconductor storage device and method of controlling data writing |
TW201814528A (zh) * | 2016-09-19 | 2018-04-16 | 三星電子股份有限公司 | 儲存裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202205293A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI738442B (zh) | 資料儲存裝置與資料處理方法 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI679537B (zh) | 資料移動方法及儲存控制器 | |
TWI428917B (zh) | 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
TWI446349B (zh) | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
US10606744B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
TWI790383B (zh) | 資料儲存裝置與資料處理方法 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI707234B (zh) | 資料儲存裝置與資料處理方法 | |
TW201327185A (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
KR102330394B1 (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
TWI760262B (zh) | 資料儲存裝置與資料處理方法 | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
TWI828391B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI695264B (zh) | 資料儲存裝置與資料處理方法 | |
US20240012564A1 (en) | Memory controller and storage device including the same | |
TWI697779B (zh) | 資料儲存裝置與資料處理方法 | |
TW201947594A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |