TW202414221A - 資料處理方法及對應之資料儲存裝置 - Google Patents
資料處理方法及對應之資料儲存裝置 Download PDFInfo
- Publication number
- TW202414221A TW202414221A TW111136327A TW111136327A TW202414221A TW 202414221 A TW202414221 A TW 202414221A TW 111136327 A TW111136327 A TW 111136327A TW 111136327 A TW111136327 A TW 111136327A TW 202414221 A TW202414221 A TW 202414221A
- Authority
- TW
- Taiwan
- Prior art keywords
- sub
- region
- write
- read
- data
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 50
- 238000003672 processing method Methods 0.000 title claims description 20
- 238000000034 method Methods 0.000 claims abstract description 68
- 230000008707 rearrangement Effects 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims description 35
- 238000013507 mapping Methods 0.000 description 51
- 230000004913 activation Effects 0.000 description 42
- 238000007726 management method Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 12
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 11
- 230000008521 reorganization Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,如何藉由資料重組達成有效率的存取控制同時避免過度耗損記憶體區塊的使用壽命為重要的議題。
根據本發明之一實施例,一種資料儲存裝置,包括一記憶體裝置與一記憶體控制器。記憶體裝置包括複數記憶體區塊,記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域。記憶體控制器耦接至記憶體裝置,用以存取記憶體裝置。記憶體控制器為各子區域維護一寫入計數值。當記憶體控制器選擇一或多個子區域以執行一資料重排程序時,記憶體控制器根據被選擇的一子區域所對應之寫入計數值判斷被選擇的子區域是否為一熱寫入子區域,並且於判斷被選擇的子區域並非為一熱寫入子區域時,記憶體控制器對被選擇的子區域執行資料重排程序,用以將屬於被選擇的子區域的邏輯位址所對應的資料搬移至記憶體裝置中具有連續實體位址的一記憶空間,以及於判斷被選擇的子區域為一熱寫入子區域時,記憶體控制器不對被選擇的子區域執行資料重排程序。
根據本發明之另一實施例,一種資料處理方法,適用於一資料儲存裝置,其中資料儲存裝置包括一記憶體裝置與一記憶體控制器,記憶體裝置包括複數記憶體區塊,記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域,記憶體控制器耦接至記憶體裝置,用以存取記憶體裝置,資料處理方法由記憶體控制器所執行並包括:為各子區域維護一寫入計數值;以及根據一子區域所對應之寫入計數值判斷是否將子區域自被選擇的一或多個子區域中排除,其中一或多個子區域被選擇以執行一資料重排程序,並且當子區域根據對應之寫入計數值被判斷為一熱寫入子區域時,子區域自被選擇的一或多個子區域中被排除。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一實施例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「於本發明之一實施例中」、「根據本發明之一實施例」、「於一範例中」或「根據本發明之一範例」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。資料儲存裝置100可包括一記憶體裝置120與一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120及控制記憶體裝置120之運作。記憶體裝置120可為一非揮發性(non-volatile,縮寫為NV)記憶體裝置(例如,一快閃記憶體(flash memory)),並且可包括一或多個記憶元件(例如,一或多個快閃記憶體晶粒、一或多個快閃記憶體晶片、或其他類似元件)。
資料儲存裝置100可耦接至一主機裝置130。主機裝置130可至少包括一處理器、一電源電路、以及至少一隨機存取記憶體(Random Access Memory,縮寫為RAM),例如至少一動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)、至少一靜態隨機存取記憶體(Static RAM,縮寫為SRAM)等(以上未示於第1圖)。處理器與隨機存取記憶體可透過一匯流排彼此相互連接,並且可耦接至電源電路以取得電源。處理器可控制主機裝置130之運作。電源電路可將電源供應至處理器、隨機存取記憶體以及資料儲存裝置100,例如輸出一或多個驅動電壓至資料儲存裝置100。資料儲存裝置100可自主機裝置130取得所述驅動電壓作為資料儲存裝置100的電源,並且為主機裝置130提供儲存空間。
根據本發明之一實施例,記憶體控制器110可包括一微處理器112、一唯讀記憶體(Read Only Memory,縮寫為ROM)112M、一記憶體介面114、一緩衝記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存程式碼112C。而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。程式碼112C可包括一或多個程式模組,例如啟動載入(boot loader)程式碼。當資料儲存裝置100自主機裝置130取得電源時,微處理器112可藉由執行程式碼112C執行資料儲存裝置100之一初始化程序。於初始化程序中,微處理器112可自記憶體裝置120載入一組系統內編程(In-System Programming,縮寫為ISP)程式碼(未示於第1圖)。微處理器112可執行該組系統內編程程式碼,使得資料儲存裝置100可具備各種功能。根據本發明之一實施例,該組系統內編程程式碼可包括,但不限於:一或多個與記憶體存取(例如,讀取、寫入與抹除)相關的程式模組,例如一讀取操作模組、一查找表格模組、一損耗均衡(wear leveling)模組、一讀取刷新(read refresh) 模組、一讀取回收(read reclaim)模組、一垃圾回收模組、一非預期斷電恢復(Sudden Power Off Recovery,縮寫為SPOR)模組、以及一不可更正錯誤更正碼(Uncorrectable Error Correction Code,縮寫為UECC)模組,其分別被提供用以執行對應之讀取、查找表格、損耗均衡、讀取刷新、讀取回收、垃圾回收、非預期斷電恢復以及對偵測到的UECC錯誤進行錯誤處理等操作。
記憶體介面114包含了一編碼器132以及一解碼器134,其中編碼器132用來對需被寫入記憶體裝置120的資料進行編碼,例如執行錯誤更正碼(ECC)編碼,而解碼器134用來對從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個記憶元件,例如多個快閃記憶體晶粒或多個快閃記憶體晶片,各記憶元件可包含複數個記憶體區塊(Block)。記憶體控制器110對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),例如,實體資料頁,其中記憶體控制器110對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一記憶體區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用主機介面118來與主機裝置130溝通。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus ,縮寫為USB)標準、SD介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、CF介面標準、MMC介面標準、eMMC介面標準、UFS介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準等。
在一實施例中,緩衝記憶體116係以隨機存取記憶體來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體,但本發明亦不限於此。於其他實施例中,緩衝記憶體116可以是動態隨機存取記憶體。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合UFS或eMMC規格之嵌入式儲存裝置,並且可被設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者主機裝置130可對資料儲存裝置100發出指令以進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可被配置為單層式儲存(Single-Level Cell,縮寫為SLC)記憶體區塊、多層式儲存(Multiple-Level Cell,縮寫為MLC)記憶體區塊、三層式儲存(Triple-Level Cell,縮寫為TLC)記憶體區塊、以及/或是四層式儲存(Quad-Level Cell,縮寫為QLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料,QLC記憶體區塊的每個記憶體單元中儲存四個位元資料,並且其中MLC、TLC與QLC記憶體區塊亦可被統稱為多層式儲存記憶體區塊。
一般而言,記憶體裝置120可大體被區分為三個區域,包含系統區域、資料區域以及備用區域。記憶體控制器110可自備用區域選擇一或多個既定記憶體區塊作為快取記憶體,或稱緩存器(buffer),亦可稱為現用區塊(current block)或活用區塊(active block),用以接收並暫存資料。待緩存器被寫滿時,記憶體控制器110再將作為緩存器之既定記憶體區塊更新成資料區域的資料區塊。舉例而言,若用以接收並暫存資料的緩存器為MLC、 TLC或QLC記憶體區塊,待緩存器被寫滿時,可直接被更新為資料區域的資料區塊。若用以接收並暫存資料的緩存器為SLC記憶體區塊,待一定數量之緩存器被寫滿時,可透過垃圾回收(Garbage Collection)程序,將多個緩存器記憶體區塊所儲存之資料搬移至多層式儲存記憶體區塊(目標記憶體區塊),並藉此操作將目標記憶體區塊更新為資料區域的資料區塊。
記憶體裝置120可儲存一全域邏輯至實體(Logical to Physical,縮寫為L2P)(或稱主機至快閃記憶體(Host to Flash,縮寫為H2F))映射表格,供記憶體控制器110存取記憶體裝置120之資料時使用。全域L2P映射表格可位於記憶體裝置120之一既定區域,例如一系統區域,但本發明並不限於此。全域L2P映射表格可被分為複數區域L2P映射表格,區域L2P映射表格可被儲存於相同或不同的記憶元件內。例如,一記憶元件可儲存一個區域L2P映射表格。於需要時,記憶體控制器110可將全域L2P映射表格的至少一部分(例如,一部分或全部)載入緩衝記憶體116或其他記憶體內。例如,記憶體控制器110可載入一區域L2P映射表格作為一暫時的L2P映射表格,用以根據此區域L2P映射表格存取記憶體裝置120的資料,但本發明並不限於此。
儲存於記憶體裝置120之全域或區域L2P映射表格(以下一併稱為L2P映射表格)可包括複數欄位,L2P映射表格之一欄位用以紀錄一邏輯位址之映射資訊。其中一邏輯位址可對應於一邏輯資料頁。L2P映射表格內所紀錄之一邏輯位址或一邏輯資料頁的映射資訊為記憶體裝置之哪個實體位址儲存有此邏輯位址或邏輯資料頁之資料的邏輯至實體映射資訊。
於一實施例中,主機裝置130及資料儲存裝置100可採用主機性能增強器(Host Performance Booster,縮寫為HPB)系列標準,以利用主機裝置端的一個記憶體裝置(例如,主機裝置130之DRAM)暫存於UFS裝置端(例如,依循UFS規格實施的資料儲存裝置100)所維護的映射資訊。所述映射資訊可自前述之全域或區域L2P映射表格中取得。借助此映射資訊,主機裝置130可發出帶有主機裝置130所欲讀取之邏輯位址(例如,邏輯區塊位址(logical block addresses,縮寫為LBAs)所對應的實體位址之相關資訊(例如,實體區塊位址(physical block addresses,縮寫為PBAs)的特定讀取指令(以下稱為HPB讀取(HPB READ)指令)以讀取資料,其中所述實體位址之相關資訊可被承載於一或多個HPB項目(HPB entry)中。如此一來,記憶體控制器110可節省自記憶體裝置120讀取及載入全域或區域L2P映射表格所花費的時間,以及節省於載入之L2P映射表格中搜尋出主機裝置130所欲讀取之邏輯位址所對應的實體位址所花費的時間。藉此,讀取效能可被改善。
於本發明之實施例中,記憶體裝置120可被邏輯性地劃分為多個分區,各分區可被視為一個邏輯單元,因此,記憶體裝置120的複數記憶體區塊可對應於複數邏輯單元,且各邏輯單元可對應於複數邏輯區塊位址。第2圖係顯示邏輯單元200與其對應之邏輯區塊位址的一個範例。各邏輯單元所對應的邏輯區塊位址(例如,邏輯區塊位址LBA 0~LBA Z,其中Z為正整數)可被劃分為複數個HPB區域(例如,HPB區域HPB_Rgn_0~ HPB_Rgn_(N-1),其中N為大於1之一正整數),並且各HPB區域可進一步被劃分為複數HPB子區域(例如,HPB子區域HPB_Sub_Rgn_0~ HPB_Sub_Rgn_(L-1),其中L為一正整數)。一個HPB子區域的大小可小於或等於一個HPB區域的大小。為簡化說明,以下將HPB子區域簡稱為子區域,以及將HPB區域簡稱為區域。
於本發明之實施例中,有兩種取得HPB項目的模式,包括主機控制模式與裝置控制模式。
第3圖為一示意圖,用以顯示於主機控制模式下可有的操作。於主機控制模式下,主機系統(例如,主機裝置130)可確認要被活化(activate)的新的子區域(操作A-1),並發出一HPB讀取緩衝(HPB READ BUFFER)指令(操作A-2),以請求要被活化之子區域所對應的HPB項目。響應於HPB讀取緩衝指令之接收,UFS裝置(例如,記憶體控制器110)可自記憶體裝置120讀取L2P映射表格之至少一部分(例如,讀取全域L2P映射表格或區域L2P映射表格),該部分係對應於選定要被活化之子區域,並且根據L2P映射表格所紀錄之映射資訊提供HPB項目(操作A-3)。UFS裝置接著可透過送入資料(DATA IN)之通用快閃記憶體儲存通訊協定資訊單元(UFS Protocol Information Unit,縮寫為UPIU)封包將HPB項目傳送至主機系統(操作A-4)。主機系統可於系統記憶體內配置一HPB區域(亦可稱為HPB快取區),用以儲存HPB項目(操作A-5)。
主機系統亦可確認要被去活化(deactivate)的區域(操作B-1),並發出一HPB寫入緩衝(HPB WRITE BUFFER)指令,以請求將一區域去活化(操作B-2)。UFS裝置可響應於HPB寫入緩衝指令之接收將對應之區域去活化(操作B-3)。
此外,當UFS裝置判斷需要更新任何子區域所對應之HPB項目時,例如,當UFS裝置修改了一已活化之子區域所對應之L2P映射資訊 (操作C-1),UFS裝置可傳送一回應UPIU封包至主機系統,以建議主機系統更新子區域所對應之HPB項目(操作C-2)。響應於回應UPIU封包之接收,主機系統可發出一HPB讀取緩衝指令 (操作C-3),並將之傳送給UFS裝置以請求已活化之子區域所對應之更新過的HPB項目(操作C-4)。響應於HPB讀取緩衝指令之接收,UFS裝置可讀取L2P映射表格中之對應於已活化之子區域之部分,並且根據L2P映射表格所紀錄之映射資訊提供HPB項目(操作C-5)。同樣地,UFS裝置接著可透過送入資料之通用快閃記憶體儲存通訊協定資訊單元(DATA IN UPIU)封包將HPB項目傳送至主機系統(操作C-6)。主機系統可根據接收到的資訊更新HPB快取區內所儲存之HPB項目(操作C-7)。
第4圖為一示意圖,用以顯示於裝置控制模式下可有的操作。於裝置控制模式下,UFS裝置可確認要被活化的新的子區域及/或要被去活化之區域(操作D-1),並傳送一回應UPIU封包至主機系統,以建議主機系統活化選定之新的子區域或去活化選定之區域(操作D-2)。對於將選定之區域去活化,主機系統可捨棄不再活化之區域所對應的HPB項目(操作D-3)。對於活化的新的子區域,主機系統可發出一HPB讀取緩衝指令,並將之傳送給UFS裝置以請求要被活化之子區域所對應的HPB項目(操作D-4)。類似地,響應於HPB讀取緩衝指令之接收,UFS裝置可自記憶體裝置120讀取L2P映射表格之至少一部分(例如,讀取全域L2P映射表格或區域L2P映射表格),該部分係對應於選定要被活化之子區域,並且根據L2P映射表格所紀錄之映射資訊提供HPB項目(操作D-5)。UFS裝置接著可透過送入資料之通用快閃記憶體儲存通訊協定資訊單元(DATA IN UPIU)封包將HPB項目傳送至主機系統(操作D-6)。主機系統可於系統記憶體內配置一HPB區域(亦可稱為HPB快取區),用以儲存HPB項目(操作D-7)。
第5圖係顯示HPB項目的一個範例格式。於本發明之一實施例中,一個HPB項目的大小為8位元組(Byte)。於此範例格式中,4位元組用以記載自L2P映射表格(例如,全域或區域L2P映射表格,或者由記憶體控制器110載入緩衝記憶體116之暫時的L2P映射表格) 取得的映射資訊(例如,實體位址),而其餘4位元組用以記載另一實體位址,此實體位址係快閃記憶體內實際用以儲存前述全域或區域L2P映射表格的位址。更具體的說,於第5圖所示之範例格式中,第一個4位元組大小的PBA與第二個4位元組大小的PBA被合併形成一個HPB項目,其中第一個PBA為記錄於表格1(亦稱為T1表格)的實體區塊位址,此實體區塊位址為一邏輯區塊位址所映射之實體區塊位址,而第二個PBA為記錄於表格2(亦稱為T2表格)的實體區塊位址,此實體區塊位址則為T1表格的實體區塊位址。於此,T1表格可以是記憶體裝置120內所儲存的全域或區域L2P映射表格,T2表格可以一個系統表格,用以紀錄各管理表格(例如,全域或區域L2P映射表格) 實際被儲存於記憶體裝置120的實體位址。
由於當一管理表格(例如,全域或區域L2P映射表格)的內容(例如,映射資訊)需被更新時,記憶體控制器110可配置另一個記憶體空間儲存此管理表格更新後的內容,因此,當由一邏輯區塊位址所映射之實體區塊位址改變時,不僅T1表格的內容需要修改,T1表格的更新內容也會被儲存於記憶體裝置120的另一個新的儲存空間。因此,系統表格內所紀錄之T1表格所對應之實體位址也會隨之改變。如此一來,HPB項目內所記載的T2表格的內容便能用於驗證由此HPB項目所對應之一邏輯區塊位址所映射之實體區塊位址所儲存資料是否仍為有效資料。當HPB項目所記載之T2表格內容與記憶體控制器110所維護之最新的T1表格的實體位址相符時,代表儲存於此HPB項目所記載之實體區塊位址(T1表格內容)之資料仍為有效資料。反之,代表儲存於此HPB項目所記載之實體區塊位址之資料已為無效資料。需注意的是,前述一實體區塊位址所儲存之資料是否仍為有效資料的驗證可由資料儲存裝置端的記憶體控制器110執行。
第6圖係顯示HPB項目的另一個範例格式。於此範例格式中,28位元用於承載自L2P映射表格(例如,全域或區域L2P映射表格,或者由記憶體控制器110載入緩衝記憶體116之暫時的L2P映射表格)取得的映射資訊,24位元用於承載全域或區域L2P映射表格實際被儲存於快閃記憶體內哪個的實體位址的資訊,而剩餘的12位元則用於承載相關聯的LBA的連續性資訊。更具體的說,於第6圖所示之範例格式中,第一個PBA、第二個PBA與一LBA的連續性資訊可被合併形成一個HPB項目,其中第一個PBA為儲存於T1表格的實體區塊位址,此實體區塊位址為前述LBA所映射之實體區塊位址,第二個PBA為儲存於T2表格的實體區塊位址,此實體區塊位址則為T1表格的實體區塊位址。於本發明之實施例中,連續性資訊可由能指示出連續長度的一個數值或者一個連續位元表格來表示。
於本發明之一實施例中,記憶體控制器110可分別計算並產生(例如,紀錄及/或更新)在HPB項目表格所相關聯的多個實體位址中,接續在一個HPB項目所對應之實體位址之後的連續實體位址數量,並以此作為前述連續長度。舉例而言,假設HPB項目0~7所記載之實體位址依序為{0x000A000, 0x000A001, 0x000A002, 0x000A003, 0x000A004,, 0x000A005,
0x000B009, 0x000A007},則接續在實體位址0x000A000之後的連續實體位址(例如,實體位址{0x000A001, …, 0x000A005})的數量為5,因此,於此範例中,HPB項目0所對應的連續長度可為0x5。
於本發明之另一實施例中,記憶體控制器110可分別確認在HPB項目表格所相關聯的多個實體位址中,接續在一個HPB項目所對應之實體位址之後的多個實體位址的連續性,以產生可指示出後續多個實體位址的連續性的連續位元表格。舉例而言,假設HPB項目0~12所記載之實體位址依序為{0x000A000, 0x000A001, 0x000A002, 0x000A003, 0x000A004,, 0x000A005, 0x000B009, 0x000A007, 0x000A008, 0x000A009, 0x000A00A,
0x000B00A, 0x000A00C},則對於HPB項目0,記憶體控制器110可分別確認接續在實體位址0x000A000之後的12個實體位址的連續性,以產生連續位元表格0xBDF,其用以指示出後續12個實體位址的連續性,連續位元表格以位元展開表示則可為,例如,從最低有效位元(Least Significant Bit,縮寫LSB)開始到最高有效位元(Most Significant Bit,縮寫MSB)的101111011111,其中的位元值0代表不連續,位元值1代表連續。因此,由HPB項目0所記載的連續位元表格0xBDF可指示出HPB項目1~5記載連續的實體位址,HPB項目7~10記載連續的實體位址,並且HPB項目12與其後續的一或多個HPB項目記載連續的實體位址。
借助HPB項目所提供的資訊,主機裝置130可發出前述HPB讀取指令,此HPB讀取指令可承載主機裝置130試圖讀取的起始邏輯地址、傳輸長度(TRANSFER LENGTH)、以及HPB項目所記載的內容等相關資訊,用以讀取資料。第7圖為一示意圖,用以顯示HPB讀取指令的對應操作。主機系統可自HPB快取區取得所需之HPB項目資訊,並且傳送一HPB讀取指令給UFS裝置(操作E-1),此HPB讀取指令帶有一邏輯區塊位址LBA(例如,起始LBA)、此LBA所對應之HPB項目內容以及傳輸長度,並透過HPB讀取指令UPIU封包傳送(操作E-2)。於一特定實施例中,傳輸長度可被限定為1,但本發明並不限於此。於本發明之其他實施例中,傳輸長度可被設定為任意正整數。例如,於HPB 2.0標準中,傳輸長度可被設定為大於1的正整數。於接收到HPB讀取指令時,UFS裝置可解碼此對應於主機系統試圖讀取的一個選定的LBA的HPB項目,以取得此選定的LBA所對應的實體位址或PBA的相關資訊,並且根據此實體位址或PBA的相關資訊存取記憶體裝置,以取得主機系統試圖讀取的資料(操作E-3)。UFS裝置可於操作E-3中判斷接收到的HPB項目是否仍為有效。例如,透過前述判斷HPB項目所記載之T2表格內容與記憶體控制器110所維護之最新的T1表格的實體位址是否相符判斷HPB項目是否仍為有效。若HPB項目的內容為有效的,UFS裝置可取得主機裝置130試圖讀取的資料(即,圖中所示之「邏輯區塊資料」),並傳送一或多個送入資料之通用快閃記憶體儲存通訊協定資訊單元(DATA IN UPIU)封包至主機系統,以傳送此資料(操作E-4)給主機系統,並且於資料傳輸完成後傳送回應UPIU封包(操作E-5)至主機系統,其中所述「邏輯區塊資料」係指主機裝置130所指定欲讀取的邏輯位址LBA所對應的資料。另一方面,若判斷接收到的HPB項目為無效的,則UFS裝置可略過操作E-4,直接執行操作E-5,藉由傳送一回應UPIU封包至主機系統,以建議主機系統更新對應的HPB項目。
需注意的是,於本發明之一些實施例中,UFS裝置端可主動地建議主機系統更新HPB項目,例如,於前述操作C-2或操作D-2中UFS裝置端藉由傳送一回應UPIU封包主動地建議主機系統更新HPB項目或建議主機系統活化新的子區域。而於本發明之另一些實施例中,UFS裝置端也可不主動地建議主機系統更新HPB項目。於該些實施例中,UFS裝置端可改為在判斷HPB項目為無效的之後,再藉由傳送一回應UPIU封包至主機系統,以建議主機系統更新對應的HPB項目。例如,UFS裝置於接收到HPB讀取指令後,若於前述操作E-3中判斷HPB項目為無效的,透過回應UPIU封包建議主機系統更新對應的HPB項目。
由於傳輸長度可被設定為大於1的正整數,即,主機裝置130可試圖利用HPB項目的資訊快速讀取的一個以上LBA的資料,因此,於本發明之一些實施例中,記憶體控制器110可記錄及/或分析主機裝置130的存取行為、根據紀錄的主機裝置130的存取行為選擇一或多個要進行資料重整或資料重排的子區域,並且主動地執行一資料重整或資料重排程序,用以將被選擇的該至少一個子區域的資料搬移至記憶體裝置120中具有連續實體位址的一記憶空間(例如,一記憶體區塊),以改善連續邏輯位址所對應的資料實際被儲存於記憶體裝置120的連續性。
根據本發明之一實施例,記憶體控制器110可建立一活化次數表格(例如,子區域活化次數表格),並且響應於由主機裝置130發出的指令維護或更新活化次數表格的內容。活化次數表格可包括複數欄位,各欄位用以記錄相關聯之一子區域(例如,前述之HPB子區域)所對應之一活化次數。因此,活化次數表格所包含的欄位總數可等於記憶裝置120所包含的HPB子區域總數。如上所述,記憶體裝置120可被劃分為多個分區,各分區可被視為一個邏輯單元,且各邏輯單元可對應於複數邏輯區塊位址。各邏輯單元所對應的邏輯區塊位址可被劃分為複數個HPB區域,並且各HPB區域可進一步被劃分為複數HPB子區域。因此,於本發明之實施例中,各邏輯單元可包括複數區域,並且各區域包括複數子區域。
於本發明之一些實施例中,一子區域所對應的活化次數係用以紀錄該子區域被主機裝置130活化的次數。例如,活化次數可為一計數值,用以計算對應之子區域請求被活化的次數。根據本發明之一實施例,記憶體控制器110可響應於由主機裝置130發出的HPB讀取緩衝(HPB READ BUFFER)指令更新活化次數表格的內容。如上所述,主機系統(例如,主機裝置130)可確認要被活化的新的子區域,並發出一HPB讀取緩衝指令,以請求要被活化之子區域所對應的HPB項目。因此,一或多個要被活化的子區域會被主機裝置130標識於HPB讀取緩衝指令,或其相關資訊會被承載於HPB讀取緩衝指令中。響應於HPB讀取緩衝指令之接收,記憶體控制器110可藉由增加HPB讀取緩衝指令中標識出的一或多個要被活化的子區域所對應的一或多個活化次數更新活化次數表格的內容(例如,為每次的活化加1)。
根據本發明之一實施例,記憶體控制器110可選擇一或多個活化次數高於一既定值或一臨界值的子區域作為要進行資料重排的子區域。根據本發明之另一實施例,記憶體控制器110可更將活化次數表格中記錄的活化次數排序,並且根據排序過的活化次數選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可依序根據排序過的活化次數選擇出目前活化次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的活化次數自排序過的活化次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
此外,根據本發明之另一實施例,記憶體裝置110也可建立一讀取次數表格(例如,子區域讀取次數表格),並且響應於由主機裝置130發出的讀取指令維護或更新讀取次數表格的內容,所述讀取指令帶有至少一個指定的邏輯位址。讀取次數表格可包括複數欄位,各欄位用以記錄相關聯之一子區域(例如,前述之HPB子區域)所對應之一讀取次數。因此,讀取次數表格所包含的欄位總數可等於記憶裝置120所包含的HPB子區域總數。
於本發明之一些實施例中,一子區域所對應的讀取次數係用以紀錄該子區域被主機裝置130讀取的次數。例如,讀取次數可為一計數值,用以計算主機裝置130發出指令讀取對應之子區域所包含的邏輯位址的資料的次數。根據本發明之一實施例,記憶體控制器110可響應於由主機裝置130發出的一般讀取指令更新讀取次數表格的內容。響應於帶有一起始邏輯區塊位址與一欲讀取之資料長度(以下稱為讀取長度)的一讀取指令之接收,記憶體控制器110可藉由增加指定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與讀取長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個讀取次數更新讀取次數表格的內容(例如,為每次的讀取加1)。根據本發明之另一些實施例,記憶體控制器110可響應於由主機裝置130所發出帶有讀取長度大於一既定讀取長度臨界值以指定一個以上要讀取的邏輯位址的讀取指令更新讀取次數表格的內容。例如,記憶體控制器110可藉由增加指定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與讀取長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個讀取次數更新讀取次數表格的內容(例如,為每次的讀取加1)。
根據本發明之一實施例,記憶體控制器110可選擇一或多個讀取次數高於一既定值或一臨界值的子區域作為要進行資料重排的子區域。根據本發明之另一實施例,記憶體控制器110可更將讀取次數表格中記錄的讀取次數排序,並且根據排序過的讀取次數選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可依序根據排序過的讀取次數選擇出目前讀取次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的讀取次數自排序過的讀取次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
根據本發明之另一實施例,記憶體控制器110可根據讀取次數表格所記錄之讀取次數計算一平均讀取次數,並且根據平均讀取次數選擇至少一個子區域。例如,記憶體控制器110可選擇一或多個讀取次數高於平均讀取次數的子區域作為要進行資料重排的子區域。
此外,根據本發明之又另一實施例,記憶體裝置110也可建立另一讀取次數表格(例如,子區域HPB讀取次數表格)(為了與本發明之實施例所述之讀取次數表格有所區隔,以下稱之為HPB讀取次數表格),並且響應於由主機裝置130發出的帶有大於1的傳輸長度的HPB讀取指令維護或更新HPB讀取次數表格的內容,其中主機裝置130藉由帶有大於1的傳輸長度的HPB讀取指令指定一個以上要被讀取的邏輯位址。HPB讀取次數表格可包括複數欄位,各欄位用以記錄相關聯之一子區域(例如,前述之HPB子區域)所對應之一HPB讀取次數。因此,HPB讀取次數表格所包含的欄位總數可等於記憶裝置120所包含的HPB子區域總數。
於本發明之一些實施例中,一子區域所對應的HPB讀取次數係用以紀錄該子區域被主機裝置130透過發出HPB讀取指令讀取的次數。例如,HPB讀取次數可為一計數值,用以計算主機裝置130發出HPB讀取指令讀取對應之子區域所包含的邏輯位址的資料的次數。根據本發明之一實施例,記憶體控制器110可響應於由主機裝置130發出的帶有傳輸長度大於1的HPB讀取指令更新HPB讀取次數表格的內容。響應於帶有一起始邏輯區塊位址與大於1的傳輸長度的一HPB讀取指令之接收,記憶體控制器110可藉由增加被指定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與傳輸長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個HPB讀取次數更新HPB讀取次數表格的內容(例如,為每次的HPB讀取加1)。
根據本發明之一實施例,記憶體控制器110可選擇一或多個HPB讀取次數高於一既定值或一臨界值的子區域作為要進行資料重排的子區域。根據本發明之另一實施例,記憶體控制器110可更將HPB讀取次數表格中記錄的HPB讀取次數排序,並且根據排序過的HPB讀取次數選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可依序根據排序過的HPB讀取次數選擇出目前HPB讀取次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的HPB讀取次數自排序過的HPB讀取次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
根據本發明之另一實施例,記憶體控制器110可根據HPB讀取次數表格所記錄之HPB讀取次數計算一平均HPB讀取次數,並且根據平均HPB讀取次數選擇至少一個子區域。例如,記憶體控制器110可選擇一或多個HPB讀取次數高於平均HPB讀取次數的子區域作為要進行資料重排的子區域。
需注意的是,於本發明之又另一些實施例中,記憶體控制器110可建立且同時維護一個以上的前述活化次數表格、讀取次數表格與HPB讀取次數表格,並且可根據紀錄於前述活化次數表格、讀取次數表格與HPB讀取次數表格之內容的任意組合選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可將前述表格中所記錄各子區域所對應的活化次數、讀取次數與HPB讀取次數加總或取其平均值並加以排序後,根據排序過的加總或平均結果選擇一或多個要進行資料重排的子區域。
於本發明之實施例中,資料重排程序(例如,於前述實施例之任一者中所述之資料重排程序)可為一垃圾回收程序,或者可被合併於一垃圾回收程序中,而前述之要進行資料重排的子區域的選擇可於一垃圾回收程序被觸發時連帶被觸發。更具體的說,當任一可觸發資料回收程序的條件達成時(例如,當閒置記憶體區塊(spare memory block)的總數量低於一既定閒置記憶體區塊臨界值時),除了選擇存有需被搬移(或者,重新寫入)至目的記憶體區塊的有效資料的來源記憶體區塊外,記憶體控制器110可進一步選擇一或多個要進行資料重排的子區域,並且執行對應之資料重排程序,用以將被選擇的子區域的資料搬移(或者重新寫入)至記憶體裝置中具有連續實體位址的記憶空間。
於本發明之其他實施例中,資料重排程序也可被合併於其他資料搬移程序中,例如,用以將一或多個抹除次數高於一既定抹除次數臨界值的記憶體區塊的資料搬移至抹除次數相對少的記憶體區塊之一損耗均衡(wear leveling)程序、用以將具有ECC錯誤位元數量高於一既定錯誤位元數量之資料搬移至一新的記憶體區塊之一讀取回收(read reclaim)程序、用以將具有讀取次數高於一既定讀取次數臨界值之資料搬移至一新的記憶體區塊之一讀取刷新(read refresh)程序、或其他。此外,要進行資料重排的子區域的選擇也可於資料搬移程序被觸發時連帶被觸發。
於本發明之又另一些實施例中,資料重排程序也可於資料儲存裝置100閒置時(例如,當資料儲存裝置100於一既定期間內均未自主機裝置130接收到任何指令時,資料儲存裝置100可進入閒置模式)被執行。
根據本發明之一實施例,在如前述實施例中根據活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數或者根據排序過的活化次數/讀取次數/HPB讀取次數選擇一或多個要進行資料重排程序的子區域後,記憶體控制器110可更進一步判斷是否將其中的一或多個子區域自被選擇的子區域中排除。舉例而言,結合前述實施例,於本發明之第一實施例中,對於資料經常被更新的子區域,記憶體控制器110可判斷不對其執行資料重排程序,即,將之自被選擇的子區域中排除,以避免該子區域因經常性的資料重組而過度耗損記憶體區塊的壽命;於本發明之第二實施例中,對於被主機裝置130配置用以儲存一檔案系統之管理資料的子區域,記憶體控制器110可判斷不對其執行資料重排程序,即,將之自被選擇的子區域中排除,以避免該子區域因經常性的資料重組而過度耗損記憶體區塊的壽命;於本發明之第三實施例中,記憶體控制器110可同時排除資料經常被更新的子區域以及用以儲存一檔案系統之管理資料的子區域。
第8圖係顯示根據本發明之第一實施例所述之資料處理方法流程圖。本發明之資料處理方法適用於資料儲存裝置,例如,資料儲存裝置100,並且可包括由記憶體控制器110所執行之以下步驟:
步驟S802: 為各子區域,例如,前述之HPB子區域HPB_Sub_Rgn_0~ HPB_Sub_Rgn_(L-1),維護一寫入計數值W_Cnt。
步驟S804: 根據一子區域所對應之寫入計數值W_Cnt判斷是否將該子區域自被選擇的一或多個子區域中排除。其中,所述一或多個子區域可為上述被選擇以執行資料重排程序的子區域,並且當一子區域根據對應之寫入計數值W_Cnt被判斷為一熱寫入子區域時,該子區域將會自被選擇以執行資料重排程序的一或多個子區域中被排除。換言之,即便該子區域已根據活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數或者根據排序過的活化次數/讀取次數/HPB讀取次數被選擇以進行資料重排程序,由於該子區域被判斷為一熱寫入子區域,因此記憶體控制器110於進行資料重排程序時會將該子區域排除而不會對該子區域執行資料重排程序。
另一方面,於判斷被選擇以執行資料重排程序的該子區域並非為一熱寫入子區域時,記憶體控制器110會對該子區域執行資料重排程序,用以將屬於該子區域的邏輯位址所對應的資料搬移至記憶體裝置中具有連續實體位址的一記憶空間。
關於根據對應的活化次數/讀取次數/HPB讀取次數選擇子區域以進行資料重排程序的操作以及資料重排程序等的詳細說明,可參考以上段落的內容,並於此不再贅述。
根據本發明之一實施例,記憶體控制器110可維護一子區域寫入次數表格Sub_Rgn_W_Cnt_Tab,並且響應於由主機裝置130發出之一寫入指令更新子區域寫入次數表格Sub_Rgn_W_Cnt_Tab的內容。子區域寫入次數表格Sub_Rgn_W_Cnt_Tab可包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之寫入計數值W_Cnt,並且記憶體控制器110藉由增加於寫入指令中指定的邏輯位址所屬之一或多個子區域所對應之一或多個寫入計數值W_Cnt更新子區域寫入次數表格Sub_Rgn_W_Cnt_Tab的內容。
更具體的說,響應於帶有一起始邏輯區塊位址與一欲寫入之資料長度(以下稱為寫入長度)的一寫入指令之接收,記憶體控制器110可藉由增加指定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與寫入長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個寫入計數值W_Cnt更新子區域寫入次數表格Sub_Rgn_W_Cnt_Tab的內容(例如,為每次的寫入加1)。需注意的是,響應於同一個寫入指令,一個子區域所對應的寫入計數值W_Cnt最多被增加1。
根據本發明之另一實施例,記憶體控制器110可維護一邏輯寫入次數表格(logical write count,縮寫LWC)LWC_Tab,並且響應於由主機裝置130發出之一寫入指令更新邏輯寫入次數表格LWC_Tab的內容。邏輯寫入次數表格LWC_Tab包括複數欄位,各欄位用以記錄相關聯之一邏輯位址所對應之一寫入計數值,記憶體控制器110藉由增加於寫入指令中指定的一或多個邏輯位址所對應之寫入計數值更新邏輯寫入次數表格LWC_Tab的內容,並且根據邏輯寫入次數表格LWC_Tab的內容維護各子區域所對應之寫入計數值W_Cnt。
更具體的說,響應於帶有一起始邏輯區塊位址與一欲寫入之資料長度(以下稱為寫入長度)的一寫入指令之接收,記憶體控制器110可根據起始邏輯區塊位址與寫入長度推算出該寫入指令所指定的邏輯位址,並且藉由增加指定的邏輯位址所對應之寫入計數值更新邏輯寫入次數表格LWC_Tab的內容(例如,為每次的寫入加1),再將一子區域所涵蓋的一邏輯位址範圍內所有邏輯位址所對應之寫入計數值加總而得該子區域所對應之寫入計數值W_Cnt。
根據本發明之一實施例,記憶體控制器110可根據被選擇以執行資料重排程序的子區域所對應之寫入計數值W_Cnt是否大於一臨界值判斷該子區域是否為一熱寫入子區域。例如,記憶體控制器110除了為各子區域維護對應之一寫入計數值W_Cnt外,記憶體控制器110可更計算其平均值,並且將之設定為所述臨界值。須注意的是,因各子區域所對應之寫入計數值W_Cnt並非一固定值,而是會隨著資料儲存裝置100的使用而增加的一變動值,因此,寫入計數值的平均值也並非一固定值,記憶體控制器110可持續計算當前最新的平均值並將之設定為所述臨界值。
此外,資料儲存裝置100也可根據總寫入資料量(Total Write Bytes,縮寫為TWB)來計算子區域所對應之寫入計數值W_Cnt的平均值。舉例而言,總寫入資料量TWB可以是自一特定時間點(例如,自資料儲存裝置100被載入ISP程式碼並初始化後)開始累計資料儲存裝置100每次被寫入的資料量而得的一加總結果。假設記憶體裝置120的容量是128GB(位元組),但是總共寫入的資料量為256GB,即可得知每個邏輯位址平均寫入的次數為2。再假設一個邏輯位址所對應的資料大小為4KB,一個HPB子區域所對應的容量為24MB,則可換算出一個HPB 子區域所涵蓋的邏輯位址範圍內包含了24*1024/4 = 6144個邏輯位址。因此,可推得平均一個HPB子區域的寫入次數為2*6144=12288次。此時,記憶體控制器110可將12288設定為用以判斷子區域是否為一熱寫入子區域的臨界值。
根據本發明之另一實施例,記憶體控制器110可將所有子區域所對應之寫入計數值W_Cnt排序,並且根據排序過的寫入計數值W_Cnt判斷被選擇以執行資料重排程序的子區域是否為一熱寫入子區域。舉例而言,若一子區域所對應的寫入計數值W_Cnt於由多到少排序後的排名小於一既定值,則記憶體控制器110可判斷該子區域為一熱寫入子區域。
於本發明之一實施例中,假設一個實體記憶體區塊(即,實體區塊)的容量為96MB,一個HPB子區域所對應的容量為24MB,則代表一個實體記憶體區塊可對應4個HPB子區域,記憶體控制器110可將排序後的排名屬於前4*N名的子區域判斷為一熱寫入子區域,其中的4為實體記憶體區塊的容量相對於HPB子區域容量的倍數,N為一正整數。因此,於本發明之實施例中,記憶體控制器110可根據實體記憶體區塊的容量相對於HPB子區域容量的倍數值設定根據排序過的寫入計數值判斷一子區域是否為一熱寫入子區域的門檻(即,前述之既定值)。
除了熱寫入子區域之外,記憶體控制器110也可區分出用以儲存主機裝置130之系統資料的系統資料子區域,並且將之自被選擇以執行資料重排程序的子區域中排除。
根據本發明之一實施例,記憶體控制器110可將主機裝置130寫入記憶體裝置120之資料大致區分為檔案系統之管理資料以及使用者資料,其中,檔案系統之管理資料為運作於主機裝置130之操作系統(Operating system)所使用之檔案系統之管理資料。此管理資料可為一檔案系統管理表格,檔案系統管理表格可包括複數欄位,用於記錄使用者資料的管理資訊。舉例而言,檔案系統管理表格之一欄位可用以紀錄各筆使用者資料的檔案大小以及各筆使用者資料所對應的邏輯位址範圍,其中一個檔案可有對應之一筆紀錄。舉另一例而言,檔案系統管理表格之另一欄位可用以紀錄主機系統的哪些邏輯位址已經被寫入資料,哪些邏輯位址尚未被寫入資料。根據本發明之一實施例,所述之主機系統可以是包含主機裝置130與資料儲存裝置100之一系統,亦可為進一步包含耦接至主機裝置130之一或多個周邊裝置之一系統。
一般而言,每當使用者資料有所更新時,主機裝置130也必須對應地更新檔案系統之管理資料,使得檔案系統管理表格所紀錄之資訊為最新的管理資訊。當檔案系統管理表格之任何一個欄位的內容須被更新,記憶體控制器110會將最新的檔案系統管理表格內容寫入記憶體裝置120。如此一來,響應於使用者資料的更新,檔案系統管理表格也會頻繁的被更新。
因此,於本發明之第二實施例中,記憶體控制器110可於複數HPB子區域(例如,前述之HPB子區域HPB_Sub_Rgn_0~ HPB_Sub_Rgn_(L-1))中區分出用以儲存主機裝置130之系統資料的系統資料子區域,例如,包含被主機裝置130配置用以儲存檔案系統之管理資料的一或多個邏輯位址的子區域,並且在如前述實施例中根據活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數或者根據排序過的活化次數/讀取次數/HPB讀取次數選擇至少一個要進行資料重排程序的子區域後,記憶體控制器110可更進一步判斷被選擇的子區域是否為系統資料子區域。若是,記憶體控制器110可判斷不對其執行資料重排程序,即,將之自被選擇的子區域中排除,以避免該子區域因經常性的資料重組而過度耗損記憶體區塊的壽命。
第9圖係顯示根據本發明之第二實施例所述之資料處理方法流程圖。本發明之資料處理方法適用於資料儲存裝置,例如,資料儲存裝置100,並且可包括由記憶體控制器110所執行之以下步驟:
步驟S902: 根據一既定規則選擇一或多個子區域以執行一資料重排程序,用以將屬於被選擇的該一或多個子區域的該等邏輯位址所對應的資料搬移至記憶體裝置中具有連續實體位址的一記憶空間。例如,在結合如前述根據活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數或者根據排序過的活化次數/讀取次數/HPB讀取次數選擇至少一個要進行資料重排程序的子區域的實施例中,既定規則可以是選擇具有對應之活化次數/讀取次數/HPB讀取次數大於一臨界值之一或多個子區域執資料重排程序,或者根據排序過的活化次數/讀取次數/HPB讀取次數選擇一或多個子區域執資料重排程序。
步驟S904: 根據被選擇的一或多個子區域中的一子區域是否為一系統資料子區域判斷是否將該子區域自被選擇的一或多個子區域中排除。當一子區域被判斷為一系統資料子區域時,該子區域將會自被選擇以執行資料重排程序的一或多個子區域中被排除。換言之,即便該子區域已根據活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數或者根據排序過的活化次數/讀取次數/HPB讀取次數被選擇以進行資料重排程序,由於該子區域被判斷為一系統資料子區域,因此記憶體控制器110於進行資料重排程序時會將該子區域排除而不會對該子區域執行資料重排程序。
另一方面,於判斷被選擇以執行資料重排程序的該子區域並非為一系統資料子區域時,該子區域被保留於被選擇以執行資料重排程序的一或多個子區域中,因此,記憶體控制器110會對該子區域執行該資料重排程序,用以將屬於該子區域的該等邏輯位址所對應的資料搬移至記憶體裝置中具有連續實體位址的一記憶空間。
關於根據對應的活化次數/讀取次數/HPB讀取次數選擇子區域以進行資料重排程序的操作以及資料重排程序等的詳細說明,可參考以上段落的內容,並於此不再贅述。
於一實施例中,主機裝置130可將數值較小的邏輯位址(例如,自邏輯位址之起始端開始)分配給檔案系統之管理資料使用。因此,記憶體控制器110可自邏輯位址之起始端(例如,第2圖之LBA 0)開始為對應的子區域分配索引值 (例如,第2圖之HPB子區域索引值0~ (L-1)),並且當被選擇的子區域所對應之一索引值小於一既定數值時,記憶體控制器110可判斷被選擇的子區域為一系統資料子區域。
假設記憶體120為TLC快閃記憶體,且其一個實體區塊的容量為72MB、一個HPB子區域所對應的容量為24MB,則所述既定數值可被設定為3、6、9等數值(即,一個實體區塊所包含的HPB子區域數量的整數倍)。舉例而言,若記憶體控制器110將索引值0~2的HPB子區域設定為用以儲存主機裝置130之檔案系統之管理資料的系統資料子區域,則其餘的HPB子區域可被視為用以儲存使用者資料的子區域,並且既定數值可被設定為3。
同理,假設記憶體120為QLC快閃記憶體,且其一個實體區塊的容量為96MB、一個HPB子區域所對應的容量為24MB,則所述既定數值可被設定為4、8、12等數值(即,一個實體區塊所包含的HPB子區域數量的整數倍)。舉例而言,若記憶體控制器110將索引值0~3的HPB子區域設定為用以儲存主機裝置130之檔案系統之管理資料的系統資料子區域,則其餘的HPB子區域可被視為用以儲存使用者資料的子區域,並且既定數值可被設定為4。
值得注意的是,於本發明之實施例中,主機裝置130並不限於將數值較小的邏輯位址分配給檔案系統之管理資料使用。舉例而言,主機裝置130亦可將數值較大的邏輯位址(例如,自邏輯位址最末端開始)分配給檔案系統之管理資料使用。因此,本發明並不限於上述的判斷方法,並且於本發明之實施例中,一子區域是否為系統資料子區域的判斷方法可根據配置用以儲存檔案系統之邏輯位址而動態調整。
例如,主機裝置130可設定一特定邏輯位址範圍,將此特定邏輯位址範圍內的邏輯位址分配給檔案系統之管理資料使用。因此,根據本發明之另一實施例,當被選擇的子區域所涵蓋的一邏輯位址範圍與一主機裝置所配置用以儲存檔案系統之管理資料之一邏輯位址範圍重疊(其可以是完全重疊或部分重疊)時,被選擇的子區域可被判斷為一系統資料子區域。
根據本發明之一實施例,主機裝置130可藉由多種方式通知記憶體控制器110其所配置給檔案系統之管理資料的邏輯位址,或邏輯位址範圍。如上所述,記憶體控制器110可透過介面邏輯118與主機裝置130溝通。
此外,根據本發明之一實施例,所述檔案系統之管理資料可以是一檔案系統管理表格。
此外,於本發明之第三實施例中,於根據所述既定規則選擇一或多個子區域以執行資料重排程序後,記憶體控制器110可結合第一實施例與第二實施例的概念,逐一判斷根據被選擇的子區域是否為一熱寫入子區域或者一系統資料子區域,以判斷是否將該子區域自被選擇的一或多個子區域中排除。若被選擇的子區域為一熱寫入子區域或者一系統資料子區域,該子區域將會自被選擇以執行資料重排程序的一或多個子區域中被排除。若被選擇的子區域並非一熱寫入子區域,也並非一系統資料子區域,則該子區域被保留於被選擇以執行資料重排程序的一或多個子區域中,因此,記憶體控制器110會對該子區域執行該資料重排程序,用以將屬於該子區域的該等邏輯位址所對應的資料搬移至記憶體裝置中具有連續實體位址的一記憶空間。
綜上所述,於本發明之實施例中,不僅改善了連續邏輯位址所對應的資料實際被儲存於記憶體裝置120的連續性,藉由資料重排程序的執行使得經常被活化、被讀取、或透過HPB讀取指令被讀取的子區域所對應的資料可被儲存於具有連續實體位址的一記憶空間,更考量到不額外針對資料經常被更新的子區域(例如,熱寫入子區域)以及/或用以儲存檔案系統之管理資料的子區域執行資料重排程序,以避免這些子區域因經常性的資料重組而過度耗損記憶體區塊的壽命。如此一來,既可提高資料儲存裝置100的存取效率,同時也可有效延長記憶體裝置的使用壽命。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
200:邏輯單元
A-1、A-2、A-3、A-4、A-5、B-1、B-2、B-3、C-1、C-2、C-3、C-4、C-5、C-6、C-7、D-1、D-2、D-3、D-4、D-5、D-6、D-7、E-1、E-2、E-3、E-4、E-5:操作
DATA IN UPIU:送入資料之通用快閃記憶體儲存通訊協定資訊單元
HPB_Rgn_0、HPB_Rgn_(N-1):HPB區域
HPB_Sub_Rgn_0、HPB_Sub_Rgn_(L-1):HPB子區域
LBA:邏輯區塊位址
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。
第2圖係顯示邏輯單元與其對應之邏輯區塊位址的一個範例。
第3圖係顯示於主機控制模式下可有的操作。
第4圖係顯示於裝置控制模式下可有的操作。
第5圖係顯示HPB項目的一個範例格式。
第6圖係顯示HPB項目的另一個範例格式。
第7圖係顯示HPB讀取指令的對應操作。
第8圖係顯示根據本發明之第一實施例所述之資料處理方法流程圖。
第9圖係顯示根據本發明之第二實施例所述之資料處理方法流程圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (15)
- 一種資料儲存裝置,包括: 一記憶體裝置,包括複數記憶體區塊,該等記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之該等邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域;以及 一記憶體控制器,耦接至該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器為各子區域維護一寫入計數值, 當該記憶體控制器選擇一或多個子區域以執行一資料重排程序時,該記憶體控制器根據被選擇的一子區域所對應之該寫入計數值判斷被選擇的該子區域是否為一熱寫入子區域,並且於判斷被選擇的該子區域並非為一熱寫入子區域時,該記憶體控制器對被選擇的該子區域執行該資料重排程序,用以將屬於被選擇的該子區域的該等邏輯位址所對應的資料搬移至該記憶體裝置中具有連續實體位址的一記憶空間,以及於判斷被選擇的該子區域為一熱寫入子區域時,該記憶體控制器不對被選擇的該子區域執行該資料重排程序。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更維護一子區域寫入次數表格,並且響應於由一主機裝置發出之一寫入指令更新該子區域寫入次數表格的內容,該子區域寫入次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之該寫入計數值,並且該記憶體控制器藉由增加於該寫入指令中指定的邏輯位址所屬之一或多個子區域所對應之一或多個寫入計數值更新該子區域寫入次數表格的內容。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更維護一邏輯寫入次數表格,並且響應於由一主機裝置發出之一寫入指令更新該邏輯寫入次數表格的內容,該邏輯寫入次數表格包括複數欄位,各欄位用以記錄相關聯之一邏輯位址所對應之一寫入計數值,該記憶體控制器藉由增加於該寫入指令中指定的一或多個邏輯位址所對應之寫入計數值更新該邏輯寫入次數表格的內容,並且根據該邏輯寫入次數表格的內容維護各子區域所對應之該寫入計數值。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器根據被選擇的該子區域所對應之該寫入計數值是否大於一臨界值判斷被選擇的該子區域是否為一熱寫入子區域。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更將該等子區域所對應之複數寫入計數值排序,並且根據排序過的該等寫入計數值判斷被選擇的該子區域是否為一熱寫入子區域。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更響應於由一主機裝置發出之一讀取指令更新一讀取次數表格的內容,該讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數,該記憶體控制器藉由增加於該讀取指令中指定的邏輯位址所屬之一或多個子區域所對應之一或多個讀取次數更新該讀取次數表格的內容,並且該記憶體控制器更根據該讀取次數表格的內容選擇該一或多個子區域執行該資料重排程序。
- 如申請專利範圍第6項所述之資料儲存裝置,其中該記憶體控制器更將該讀取次數表格中記錄的該等讀取次數排序,並且根據排序過的該等讀取次數選擇該一或多個子區域。
- 一種資料處理方法,適用於一資料儲存裝置,其中該資料儲存裝置包括一記憶體裝置與一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該等記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之該等邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域,該記憶體控制器耦接至該記憶體裝置,用以存取該記憶體裝置,該資料處理方法由該記憶體控制器所執行並包括: 為各子區域維護一寫入計數值;以及 根據一子區域所對應之該寫入計數值判斷是否將該子區域自被選擇的一或多個子區域中排除,其中該一或多個子區域被選擇以執行一資料重排程序,並且當該子區域根據對應之該寫入計數值被判斷為一熱寫入子區域時,該子區域自被選擇的該一或多個子區域中被排除。
- 如申請專利範圍第8項所述之資料處理方法,其中當該子區域根據對應之該寫入計數值被判斷並非為一熱寫入子區域時,該子區域不會自被選擇的該一或多個子區域中被排除,並且該資料處理方法更包括: 對被選擇的該一或多個子區域執行該資料重排程序,用以將屬於被選擇的該一或多個子區域的該等邏輯位址所對應的資料搬移至該記憶體裝置中具有連續實體位址的一記憶空間。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 建立一子區域寫入次數表格,並且響應於由一主機裝置發出之一寫入指令更新該子區域寫入次數表格的內容, 其中該子區域寫入次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之該寫入計數值,並且該子區域寫入次數表格的內容係藉由增加於該寫入指令中指定的邏輯位址所屬之一或多個子區域所對應之一或多個寫入計數值被更新。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 建立一邏輯寫入次數表格,並且響應於由一主機裝置發出之一寫入指令更新該邏輯寫入次數表格的內容, 其中該邏輯寫入次數表格包括複數欄位,各欄位用以記錄相關聯之一邏輯位址所對應之一寫入計數值,該邏輯寫入次數表格的內容係藉由增加於該寫入指令中指定的一或多個邏輯位址所對應之寫入計數值被更新,並且各子區域所對應之該寫入計數值係根據該邏輯寫入次數表格的內容被維護。
- 如申請專利範圍第8項所述之資料處理方法,其中當該子區域所對應之該寫入計數值大於一臨界值時,該子區域被判斷為一熱寫入子區域。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 將該等子區域所對應之複數寫入計數值排序,並且 於根據一子區域所對應之該寫入計數值判斷是否將該子區域自被選擇的一或多個子區域中排除之步驟更包括: 根據排序過的該等寫入計數值判斷該子區域是否為一熱寫入子區域。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 響應於由一主機裝置發出之一讀取指令更新一讀取次數表格的內容, 其中該讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數,該讀取次數表格的內容係藉由增加於該讀取指令中指定的邏輯位址所屬之一或多個子區域所對應之一或多個讀取次數被更新,並且該一或多個子區域係根據該讀取次數表格的內容被選擇以執行該資料重排程序。
- 如申請專利範圍第14項所述之資料處理方法,更包括: 將該讀取次數表格中記錄的該等讀取次數排序,並且根據排序過的該等讀取次數選擇該一或多個子區域。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111136327A TWI829363B (zh) | 2022-09-26 | 2022-09-26 | 資料處理方法及對應之資料儲存裝置 |
CN202211259317.8A CN117806532A (zh) | 2022-09-26 | 2022-10-14 | 数据处理方法及对应的数据储存装置 |
US18/142,590 US20240103732A1 (en) | 2022-09-26 | 2023-05-03 | Data processing method for improving continuity of data corresponding to continuous logical addresses as well as avoiding excessively consuming service life of memory blocks and the associated data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111136327A TWI829363B (zh) | 2022-09-26 | 2022-09-26 | 資料處理方法及對應之資料儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI829363B TWI829363B (zh) | 2024-01-11 |
TW202414221A true TW202414221A (zh) | 2024-04-01 |
Family
ID=90360425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111136327A TWI829363B (zh) | 2022-09-26 | 2022-09-26 | 資料處理方法及對應之資料儲存裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240103732A1 (zh) |
CN (1) | CN117806532A (zh) |
TW (1) | TWI829363B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
TWI457755B (zh) * | 2011-08-22 | 2014-10-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與儲存裝置 |
US9830098B1 (en) * | 2016-07-11 | 2017-11-28 | Silicon Motion, Inc. | Method of wear leveling for data storage device |
CN109671458A (zh) * | 2017-10-17 | 2019-04-23 | 联发科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器 |
TWI756854B (zh) * | 2020-04-27 | 2022-03-01 | 慧榮科技股份有限公司 | 管理資料儲存的方法及裝置以及電腦程式產品 |
CN111984604B (zh) * | 2020-08-13 | 2024-03-19 | 华中科技大学 | 一种减少日志结构文件系统碎片的方法及闪存存储系统 |
-
2022
- 2022-09-26 TW TW111136327A patent/TWI829363B/zh active
- 2022-10-14 CN CN202211259317.8A patent/CN117806532A/zh active Pending
-
2023
- 2023-05-03 US US18/142,590 patent/US20240103732A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9520992B2 (en) | Logical-to-physical address translation for a removable data storage device | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN113885778B (zh) | 数据处理方法及对应的数据储存装置 | |
US11709612B2 (en) | Storage and method to rearrange data of logical addresses belonging to a sub-region selected based on read counts | |
CN113900582A (zh) | 数据处理方法及对应的数据储存装置 | |
US20190265910A1 (en) | Memory system | |
CN113885779B (zh) | 数据处理方法及对应的数据储存装置 | |
TWI748835B (zh) | 資料處理方法及對應之資料儲存裝置 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
TWI808011B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI829363B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TW202414221A (zh) | 資料處理方法及對應之資料儲存裝置 | |
TW202414217A (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI808010B (zh) | 資料處理方法及對應之資料儲存裝置 | |
CN113835617A (zh) | 数据处理方法及对应的数据储存装置 | |
TWI814590B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TW202414222A (zh) | 資料處理方法及對應之資料儲存裝置 | |
TW202414223A (zh) | 資料處理方法及對應之資料儲存裝置 | |
US11886741B2 (en) | Method and storage device for improving NAND flash memory performance for intensive read workloads | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 |