TWI766527B - 資料處理方法及對應之資料儲存裝置 - Google Patents
資料處理方法及對應之資料儲存裝置 Download PDFInfo
- Publication number
- TWI766527B TWI766527B TW110100227A TW110100227A TWI766527B TW I766527 B TWI766527 B TW I766527B TW 110100227 A TW110100227 A TW 110100227A TW 110100227 A TW110100227 A TW 110100227A TW I766527 B TWI766527 B TW I766527B
- Authority
- TW
- Taiwan
- Prior art keywords
- sub
- memory
- data
- read
- hpb
- Prior art date
Links
Images
Landscapes
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (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)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
為了輔助資料儲存裝置的存取操作,資料儲存裝置端可建立並維護一或多個映射表格,用以紀錄實體位址與邏輯位址間的映射關係。邏輯位址為由連接資料儲存裝置之一主機裝置所使用的位址,主機裝置可利用邏輯位址識別不同的記憶空間。實體位址為資料儲存裝置所使用的位址,資料儲存裝置可利用實體位址識別不同的記憶空間。記憶體控制器根據記憶體裝置的存取操作管理這些映射表格。
響應於帶有欲讀取之邏輯位址之一讀取指令,記憶體控制器必須查找映射表格,以取得儲存欲讀取之邏輯位址之資料的實體位址。然而,表格的查找或搜尋通常為較耗時的操作。此外,表格大小通常會隨著記憶體裝置的容量增加而增加。因此,在映射表格中查找或搜索所需的時間會隨著映射表格的大小增加而大幅增加。
為解決此問題並且改善記憶體裝置的讀取速度,需要一種可有效處理記憶體裝置所儲存之資料並改善記憶體裝置存取效能的資料處理方法。
本發明之一目的在於解決前述問題,並且改善記憶體裝置的讀取速度。
根據本發明之一實施例,一種資料儲存裝置包括一記憶體裝置與一記憶體控制器。記憶體裝置包括複數記憶體區塊,記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域。記憶體控制器耦接至記憶體裝置,用以存取記憶體裝置,並且響應於由一主機裝置發出之一讀取指令更新一讀取次數表格的內容,其中讀取指令帶有至少一個選定的邏輯位址。讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數,並且記憶體控制器藉由增加選定的邏輯位址所屬之子區域所對應之讀取次數更新讀取次數表格的內容。記憶體控制器更根據讀取次數表格的內容選擇至少一個子區域,並且執行一資料重排程序用以將屬於被選擇的至少一個子區域的邏輯位址的資料搬移至記憶體裝置中具有連續實體位址的一第一記憶空間。
根據本發明之另一實施例,一種資料處理方法,適用於一資料儲存裝置,其中資料儲存裝置包括一記憶體裝置與一記憶體控制器,記憶體裝置包括複數記憶體區塊,記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域,記憶體控制器耦接至記憶體裝置,用以存取記憶體裝置,資料處理方法由記憶體控制器所執行並包括:建立一讀取次數表格,並且響應於由一主機裝置發出之一讀取指令更新讀取次數表格的內容,其中讀取指令帶有至少一個選定的邏輯位址,讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數;根據讀取次數表格的內容選擇至少一個子區域;以及執行一資料重排程序,用以將屬於被選擇的至少一個子區域的邏輯位址的資料搬移至記憶體裝置中具有連續實體位址的一第一記憶空間。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一實施例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「於本發明之一實施例中」、「根據本發明之一實施例」、「於一範例中」或「根據本發明之一範例」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第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可儲存一全域邏輯至實體(Logical to Physical,縮寫為L2P)(或稱主機至快閃記憶體(Host to Flash,縮寫為H2F))映射表格,供記憶體控制器110存取記憶體裝置120之資料時使用。全域L2P映射表格可位於記憶體裝置120之一既定區域,例如一系統區域,但本發明並不限於此。全域L2P映射表格可被分為複數區域L2P映射表格,區域L2P映射表格可被儲存於相同或不同的記憶元件內。例如,一記憶元件可儲存一個區域L2P映射表格。於需要時,記憶體控制器110可將全域L2P映射表格的至少一部分(例如,一部分或全部)載入緩衝記憶體116或其他記憶體內。例如,記憶體控制器110可載入一區域L2P映射表格作為一暫時的L2P映射表格,用以根據此區域L2P映射表格存取記憶體裝置120的資料,但本發明並不限於此。
為了改善讀取效能,近期已發布了主機性能增強器(Host Performance Booster,縮寫為HPB)系列標準。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可被劃分為多個分區,各分區可被視為一個邏輯單元,且各邏輯單元可對應於複數邏輯區塊位址。第2圖係顯示邏輯單元200與其對應之邏輯區塊位址的一個範例。如HPB規格所定義,各邏輯單元所對應的邏輯區塊位址(例如,邏輯區塊位址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執行。
以下HPB項目表格1為第一個HPB項目表格範例,其中「…」之標記係表示為了簡潔起見而省略一些表格內容。HPB項目表格1中標示的T2表格內容與T1表格內容(例如,十六進制的值)可分別代表自前述T2表格與T1表格取得的內容。T1表格內容欄位中所例示的實體位址{0x0000A000, 0x0000A001, …}可做為由與HPB項目{0, 1…}相關聯之一序列的邏輯位址所映射的實體位址的實例,而反覆出現於T2表格內容欄位所記錄的一序列實體位址{0x00004030, 0x00004030, …}中的實體位址0x00004030則做為T1表格之實體位址的實例,而於此T1表格可以是一區域L2P映射表格。
HPB項目表格1
HPB項目 | T2 表格內容 | T1表格內容 |
0 | 0x00004030 | 0x0000A000 |
1 | 0x00004030 | 0x0000A001 |
2 | 0x00004030 | 0x0000A002 |
3 | 0x00004030 | 0x0000A003 |
4 | 0x00004030 | 0x0000A004 |
5 | 0x00004030 | 0x0000A005 |
6 | 0x00004030 | 0x0000B009 |
7 | 0x00004030 | 0x0000A007 |
8 | 0x00004030 | 0x0000A008 |
9 | 0x00004030 | 0x0000A009 |
10 | 0x00004030 | 0x0000A00A |
11 | 0x00004030 | 0x0000B00A |
12 | 0x00004030 | 0x0000A00C |
… | … | … |
第6圖係顯示HPB項目的另一個範例格式。於此範例格式中,28位元用於承載自L2P映射表格(例如,全域或區域L2P映射表格,或者由記憶體控制器110載入緩衝記憶體116之暫時的L2P映射表格)取得的映射資訊,24位元用於承載全域或區域L2P映射表格實際被儲存於快閃記憶體內哪個的實體位址的資訊,而剩餘的12位元則用於承載相關聯的LBA的連續性資訊。更具體的說,於第6圖所示之範例格式中,第一個PBA、第二個PBA與一LBA的連續性資訊可被合併形成一個HPB項目,其中第一個PBA為儲存於T1表格的實體區塊位址,此實體區塊位址為前述LBA所映射之實體區塊位址,第二個PBA為儲存於T2表格的實體區塊位址,此實體區塊位址則為T1表格的實體區塊位址。於本發明之實施例中,連續性資訊可由能指示出連續長度的一個數值或者一個連續位元表格來表示。
以下HPB項目表格2為第二個HPB項目表格範例,其中「…」之標記係表示為了簡潔起見而省略一些表格內容。T1表格內容欄位中所例示的實體位址{0x000A000, 0x000A001, …, 0x000A005, 0x000B009, 0x000A007, …, 0x000A00A, 0x000B00A, 0x000A00C, …}可做為由與HPB項目{0, 1…}相關聯之一序列的邏輯位址所映射的實體位址的實例,反覆出現於T2表格內容欄位所記錄的一序列實體位址{0x00004030, 0x00004030, …}中的實體位址0x00004030則做為T1表格之實體位址的實例,而於此T1表格可以是一區域L2P映射表格。
HPB項目表格2
HPB項目 | 連續長度 | T2 表格內容 | T1表格內容 |
0 | 0x5 | 0x004030 | 0x000A000 |
1 | 0x4 | 0x004030 | 0x000A001 |
2 | 0x3 | 0x004030 | 0x000A002 |
3 | 0x2 | 0x004030 | 0x000A003 |
4 | 0x1 | 0x004030 | 0x000A004 |
5 | 0x0 | 0x004030 | 0x000A005 |
6 | 0x0 | 0x004030 | 0x000B009 |
7 | 0x3 | 0x004030 | 0x000A007 |
8 | 0x2 | 0x004030 | 0x000A008 |
9 | 0x1 | 0x004030 | 0x000A009 |
10 | 0x0 | 0x004030 | 0x000A00A |
11 | 0x0 | 0x004030 | 0x000B00A |
12 | … | 0x004030 | 0x000A00C |
… | … | … | … |
此外,記憶體控制器110可分別計算並產生(例如,紀錄及/或更新)在HPB項目表格所相關聯的多個實體位址中,接續在一個HPB項目所對應之實體位址之後的連續實體位址數量,並以此作為前述連續長度。舉例而言,對於HPB項目0,記憶體控制器110可計算並產生(例如,紀錄及/或更新)在實體位址{0x000A000, 0x000A001, …, 0x000A005, 0x000B009, 0x000A007, …, 0x000A00A, 0x000B00A, 0x000A00C, …}中,接續在實體位址0x000A000之後的連續實體位址(例如,實體位址{0x000A001, …, 0x000A005})的數量,作為HPB項目0所對應的連續長度(例如,於此範例為0x5)。對於HPB項目1,記憶體控制器110可計算並產生(例如,紀錄及/或更新)在實體位址{0x000A000, 0x000A001, …, 0x000A005, 0x000B009, 0x000A007, …, 0x000A00A, 0x000B00A, 0x000A00C, …}中,接續在實體位址0x000A001之後的連續實體位址{0x000A002, …, 0x000A005}的數量,作為HPB項目1所對應的連續長度(例如,於此範例為0x4)。其餘項目則以此類推。
以下HPB項目表格3為第三個HPB項目表格範例,其中「…」之標記係表示為了簡潔起見而省略一些表格內容。T1表格內容欄位中所例示的實體位址{0x000A000, 0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, …}可做為由與HPB項目{0, 1…}相關聯之一序列的邏輯位址所映射的實體位址的實例,反覆出現於T2表格內容欄位所記錄的一序列實體位址{0x00004030, 0x00004030, …}中的實體位址0x00004030則做為T1表格之實體位址的實例,而於此T1表格可以是一區域L2P映射表格。
HPB項目表格3
HPB項目 | 連續位元表格 | T2 表格內容 | T1表格內容 |
0 | 0xBDF (101111011111) | 0x004030 | 0x000A000 |
1 | 0xDEF (110111101111) | 0x004030 | 0x000A001 |
2 | 0xEF7 (111011110111) | 0x004030 | 0x000A002 |
3 | 0xF7B (111101111011) | 0x004030 | 0x000A003 |
4 | … | 0x004030 | 0x000A004 |
5 | … | 0x004030 | 0x000A005 |
6 | … | 0x004030 | 0x000B009 |
7 | … | 0x004030 | 0x000A007 |
8 | … | 0x004030 | 0x000A008 |
9 | … | 0x004030 | 0x000A009 |
10 | … | 0x004030 | 0x000A00A |
11 | … | 0x004030 | 0x000B00A |
12 | … | 0x004030 | 0x000A00C |
13 | … | 0x004030 | 0x000A00D |
14 | … | 0x004030 | 0x000A00E |
15 | … | 0x004030 | 0x000A00F |
… | … | … | … |
此外,記憶體控制器110可分別確認在HPB項目表格所相關聯的多個實體位址中,接續在一個HPB項目所對應之實體位址之後的多個實體位址的連續性,以產生可指示出後續多個實體位址的連續性的連續位元表格。舉例而言,對於HPB項目0,記憶體控制器110可分別確認在實體位址{0x000A000, 0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, 0x000A00D, 0x000A00E, 0x000A00F, …}中,接續在實體位址0x000A000之後的12個實體位址(例如,實體位址{0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C})的連續性,以產生連續位元表格0xBDF,其可指示出後續12個實體位址{0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C}的連續性,連續位元表格以位元展開表示則可為,例如,從最低有效位元(Least Significant Bit,縮寫LSB)開始到最高有效位元(Most Significant Bit,縮寫MSB)的101111011111,其中的第0-11個位元(例如,從LSB開始的12個位元)可分別指示出後續的12個實體位址{0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C}的連續性。對於HPB項目1,記憶體控制器110可分別確認在實體位址{0x000A000, 0x000A001, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, 0x000A00D, 0x000A00E, 0x000A00F, …}中,接續在實體位址0x000A001之後的12個實體位址{0x000A002, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, 0x000A00D}的連續性,以產生連續位元表格0xDEF,其可指示出後續12個實體位址{0x000A002, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, 0x000A00D}的連續性,連續位元表格以位元展開表示則可為,例如,從LSB開始到MSB的110111101111,其中的第0-11個位元(例如,從LSB開始的12個位元) 可分別指示出後續的12個實體位址{0x000A002, …, 0x000A005,0x000B009
, 0x000A007, …, 0x000A00A,0x000B00A
, 0x000A00C, 0x000A00D}的連續性。其餘項目則以此類推。
借助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的資料,因此,如何改善連續邏輯位址的資料實際被儲存於記憶體裝置120的連續性成為一個值得關注的議題。
於本發明之實施例中,記憶體控制器110可記錄及/或分析主機裝置130的存取行為、根據紀錄的主機裝置130的存取行為選擇一或多個要進行資料重整或資料重排的子區域,並且主動地執行一資料重整或資料重排程序,用以將被選擇的該至少一個子區域的資料搬移至記憶體裝置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可依序根據排序過的活化次數選擇出目前活化次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的活化次數自排序過的活化次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
第8圖係顯示根據本發明之第一實施例所述之資料處理方法流程圖。本發明之資料處理方法適用於一資料儲存裝置,可由記憶體控制器110執行並包括以下步驟:
S802: 建立一活化次數表格,並且響應於由一主機裝置發出之一指令更新活化次數表格的內容。於本發明之實施例中,主機裝置會在指令中指出一或多個要被活化的子區域。
S804: 根據活化次數表格的內容選擇至少一個子區域。
S806: 執行一資料重排程序,用以將被選擇的至少一個子區域的資料搬移(或者重新寫入)至記憶體裝置中具有連續實體位址的一記憶空間。
需注意的是,第一實施例所述之資料處理方法可被應用於主機控制模式或裝置控制模式。
根據本發明之第二實施例,記憶體裝置110可建立一讀取次數表格(例如,子區域讀取次數表格),並且響應於由主機裝置130發出的讀取指令維護或更新讀取次數表格的內容,所述讀取指令帶有至少一個選定的邏輯位址。讀取次數表格可包括複數欄位,各欄位用以記錄相關聯之一子區域(例如,前述之HPB子區域)所對應之一讀取次數。因此,讀取次數表格所包含的欄位總數可等於記憶裝置120所包含的HPB子區域總數。如上所述,記憶體裝置120可被劃分為多個分區,各分區可被視為一個邏輯單元,且各邏輯單元可對應於複數邏輯區塊位址。各邏輯單元所對應的邏輯區塊位址可被劃分為複數個HPB區域,並且各HPB區域可進一步被劃分為複數HPB子區域。因此,於本發明之實施例中,各邏輯單元可包括複數區域,並且各區域包括複數子區域。
於本發明之第二實施例中,一子區域所對應的讀取次數係用以紀錄該子區域被主機裝置130讀取的次數。例如,讀取次數可為一計數值,用以計算主機裝置130發出指令讀取對應之子區域所包含的邏輯位址的資料的次數。根據本發明之一實施例,記憶體控制器110可響應於由主機裝置130發出的一般讀取指令更新讀取次數表格的內容。響應於帶有一起始邏輯區塊位址與一欲讀取之資料長度(以下稱為讀取長度)的一讀取指令之接收,記憶體控制器110可藉由增加選定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與讀取長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個讀取次數更新讀取次數表格的內容(例如,為每次的讀取加1)。根據本發明之另一實施例,記憶體控制器110可響應於由主機裝置130所發出帶有讀取長度大於一既定讀取長度臨界值以選定一個以上要讀取的邏輯位址的讀取指令更新讀取次數表格的內容。例如,記憶體控制器110可藉由增加選定的邏輯位址(例如,起始邏輯區塊位址及根據起始邏輯區塊位址與讀取長度推算出來後續的邏輯區塊位址)所屬之一或多個子區域所對應之一或多個讀取次數更新讀取次數表格的內容(例如,為每次的讀取加1)。
根據本發明之一實施例,記憶體控制器110可更將讀取次數表格中記錄的讀取次數排序,並且根據排序過的讀取次數選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可選擇一或多個讀取次數高於一既定值的子區域作為要進行資料重排的子區域。於一實施例中,記憶體控制器110可依序根據排序過的讀取次數選擇出目前讀取次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的讀取次數自排序過的讀取次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
根據本發明之另一實施例,記憶體控制器110可根據讀取次數表格所記錄之讀取次數計算一平均讀取次數,並且根據平均讀取次數選擇至少一個子區域。例如,記憶體控制器110可選擇一或多個讀取次數高於平均讀取次數的子區域作為要進行資料重排的子區域。
第9圖係顯示根據本發明之第二實施例所述之資料處理方法流程圖。本發明之資料處理方法適用於一資料儲存裝置,可由記憶體控制器110執行並包括以下步驟:
步驟S902: 建立一讀取次數表格,並且響應於由一主機裝置發出之一讀取指令更新讀取次數表格的內容。於本發明之實施例中,讀取指令帶有至少一個選定的邏輯位址。
步驟S904: 根據讀取次數表格的內容選擇至少一個子區域。
步驟S906: 執行一資料重排程序,用以將屬於被選擇的至少一個子區域的邏輯位址的資料(即,被選擇的至少一個子區域的資料)搬移(或者重新寫入)至記憶體裝置中具有連續實體位址的記憶空間。
需注意的是,第二實施例所述之資料處理方法可被應用於主機控制模式或裝置控制模式。
根據本發明之第三實施例,記憶體裝置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讀取次數表格中記錄的HPB讀取次數排序,並且根據排序過的HPB讀取次數選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可選擇一或多個HPB讀取次數高於一既定值的子區域作為要進行資料重排的子區域。於一實施例中,記憶體控制器110可依序根據排序過的HPB讀取次數選擇出目前HPB讀取次數最多的子區域,並且對所選的子區域執行對應的資料重排程序,接著將已被資料重排過的子區域所對應的HPB讀取次數自排序過的HPB讀取次數中移除。於需要時,前述的選擇與資料重排程序可反覆地對不同子區域執行。
根據本發明之另一實施例,記憶體控制器110可根據HPB讀取次數表格所記錄之HPB讀取次數計算一平均HPB讀取次數,並且根據平均HPB讀取次數選擇至少一個子區域。例如,記憶體控制器110可選擇一或多個HPB讀取次數高於平均HPB讀取次數的子區域作為要進行資料重排的子區域。
第10圖係顯示根據本發明之第三實施例所述之資料處理方法流程圖。本發明之資料處理方法適用於一資料儲存裝置,可由記憶體控制器110執行並包括以下步驟:
步驟S1002: 建立一讀取次數表格(例如,HPB讀取次數表格),並且響應於由一主機裝置發出之一讀取指令(例如,HPB讀取指令)更新讀取次數表格的內容,其中讀取指令帶有大於1之一傳輸長度,以選定一個以上要被讀取的邏輯位址。
步驟S1004: 根據讀取次數表格的內容選擇至少一個子區域。
步驟S1006: 執行一資料重排程序,用以將屬於被選擇的至少一個子區域的該等邏輯位址的資料(即,被選擇的至少一個子區域的資料)搬移(或者重新寫入)至記憶體裝置中具有連續實體位址的記憶空間。
需注意的是,第三實施例所述之資料處理方法可被應用於主機控制模式或裝置控制模式。
此外,於本發明之一些實施例中,資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序)可為一垃圾回收程序,或者可被合併於一垃圾回收程序中,而前述之要進行資料重排的子區域的選擇可於一垃圾回收程序被觸發時連帶被觸發。更具體的說,當任一可觸發資料回收程序的條件達成時(例如,當閒置記憶體區塊(spare memory block)的總數量低於一既定閒置記憶體區塊臨界值時),除了選擇存有需被搬移(或者,重新寫入)至目的記憶體區塊的有效資料的來源記憶體區塊外,記憶體控制器110可進一步選擇一或多個要進行資料重排的子區域,並且執行對應之資料重排程序,用以將被選擇的子區域的資料搬移(或者重新寫入)至記憶體裝置中具有連續實體位址的記憶空間。
於本發明之其他實施例中,資料重排程序也可被合併於其他資料搬移程序中,例如,用以將一或多個抹除次數高於一既定抹除次數臨界值的記憶體區塊的資料搬移至抹除次數相對少的記憶體區塊之一損耗均衡(wear leveling)程序、用以將具有ECC錯誤位元數量高於一既定錯誤位元數量之資料搬移至一新的記憶體區塊之一讀取回收(read reclaim)程序、用以將具有讀取次數高於一既定讀取次數臨界值之資料搬移至一新的記憶體區塊之一讀取刷新(read refresh)程序、或其他。此外,要進行資料重排的子區域的選擇也可於資料搬移程序被觸發時連帶被觸發。
於本發明之又另一些實施例中,資料重排程序也可於資料儲存裝置100閒置時(例如,當資料儲存裝置100於一既定期間內均未自主機裝置130接收到任何指令時,資料儲存裝置100可進入閒置模式)被執行。
根據本發明之一實施例,在如前述第一、第二與第三實施例中將活化次數表格/讀取次數表格/HPB讀取次數表格中記錄的活化次數/讀取次數/HPB讀取次數排序,並且根據排序過的活化次數/讀取次數/HPB讀取次數選擇至少一個子區域後,記憶體控制器110可進一步判斷屬於被選擇的至少一個子區域的複數邏輯位址的資料是否並未被儲存於連續實體位址。記憶體控制器110可藉由根據屬於被選擇的至少一個子區域的複數邏輯位址查找L2P映射表格的內容以判斷屬於被選擇的至少一個子區域的複數邏輯位址的資料是否被儲存於連續實體位址。當屬於被選擇的至少一個子區域的邏輯位址的資料並未被儲存於連續實體位址時,記憶體控制器110將該等邏輯位址的資料搬移(或者,重新寫入)至具有連續實體位址的記憶空間。當被選擇的至少一個子區域的資料已被儲存於連續實體位址時,記憶體控制器110則可省略資料搬移的操作。具有連續實體位址的記憶空間可以是一記憶體區塊(例如,一目的記憶體區塊),或者一記憶體區塊中具有連續實體位址的一部分儲存單元。
第11圖係顯示根據本發明之一實施例所述之資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序)的操作。記憶體控制器110可根據邏輯位址的數值或索引值的內容推算出此邏輯位址屬於哪個子區域以及哪個區域。第2圖已顯示出一個邏輯位址(例如,邏輯區塊位址LBA)與HPB區域/HPB子區域之間的關係的範例。此技術領域中具有通常知識者當可理解如何根據一邏輯位址推算出此邏輯位址屬於哪個子區域以及哪個區域,故於此不再贅述。
於第11圖所示之範例中,假設一個HPB區域的大小為32百萬位元組(MB),一個HPB子區域的大小為4百萬位元組,並且一個邏輯區塊位址的大小為4千位元祖(KB),則一個HPB子區域可包括1000個邏輯區塊位址。因此,具有索引值(或數值)0~999的邏輯區塊位址LBA 0~LBA 999屬於索引值為0的HPB區域HPB_Rgn_0以及索引值為0的HPB子區域HPB_Sub_Rgn_0。
當記憶體控制器110如上述實施例根據活化次數表格/讀取次數表格/HPB讀取次數表格的內容判斷HPB子區域HPB_Sub_Rgn_0需要進行資料重排,並且選擇出HPB子區域HPB_Sub_Rgn_0時,記憶體控制器110可如第11圖所示將邏輯區塊位址LBA 0~LBA 999的資料自實體位址{0x000A000, 0x000A001, 0x000A002, 0x000B003, 0x000A004, 0x000A005, 0x000B009, …}搬移至具有連續實體位址{0x0000C000, 0x0000C001, 0x0000C002, 0x0000C003, 0x0000C004, 0x0000C005, 0x0000C006, …}的一個新的記憶空間。
需注意的是,於本發明之一些實施例中,記憶體控制器110也可對包含被選擇的一或多個子區域的一或多個區域執行資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序),用以將屬於包含被選擇的一或多個子區域的一或多個區域的所有邏輯位址的資料都搬移至記憶體裝置120中具有連續實體位址的記憶空間。此技術領域中具有通常知識者當可根據如第11圖所示之範例推導出將一整個區域的資料搬移至具有連續實體位址的記憶空間的資料重排操作,故於此不再贅述。
根據本發明之一實施例,記憶體控制器110也可於一映射表格中為資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序)中作為目的記憶空間使用的記憶空間對應地記錄複數邏輯位址。例如,前述具有連續實體位址且於資料重排程序作為目的記憶空間使用的記憶空間可被包含於一記憶體區塊(於以下段落稱之為目的記憶體區塊)。記憶體控制器110可於目的記憶體區塊所對應之一映射表格中對應地記錄複數邏輯位址。此映射表格可為一實體至邏輯(Physical to Logical,縮寫為P2L) (或稱快閃記憶體至主機 (Flash to Host,縮寫為F2H))映射表格。不同於前述儲存於記憶體裝置120的全域或區域L2P映射表格,對應於目的記憶體區塊的P2L映射表格可被儲存於緩衝記憶體116內,作為一臨時的映射表格。
於本發明之一實施例中,P2L映射表格可包括複數欄位,P2L映射表格之一欄位對應於目的記憶體區塊的一個實體位址,用以紀錄此實體位址之映射資訊,其中四個實體位址可對應於一實體資料頁。例如,一實體位址可用以儲存4 KB之資料,而一實體資料頁的大小可為16 KB。目的記憶體區塊的P2L映射表格內所紀錄之一個實體位址的映射資訊為儲存於目的記憶體區塊之該實體位址之資料係指向哪個邏輯位址的實體至邏輯映射資訊。
此外,儲存於記憶體裝置120之全域或區域L2P映射表格(以下一併稱為L2P映射表格)可包括複數欄位,L2P映射表格之一欄位用以紀錄一邏輯位址之映射資訊。其中一邏輯位址可對應於一邏輯資料頁。L2P映射表格內所紀錄之一邏輯位址或一邏輯資料頁的映射資訊為記憶體裝置之哪個實體位址儲存有此邏輯位址或邏輯資料頁之資料的邏輯至實體映射資訊。
於本發明之實施例中,記憶體控制器110可更響應於將被選擇的一或多個子區域的資料搬移至目的記憶體區塊的操作更新目的記憶體區塊所對應之P2L映射表格的內容並且記錄目的記憶體區塊的複數實體位址的實體至邏輯映射資訊。此外,於本發明之實施例中,於執行資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序)後,記憶體控制器110可進一步於更新目的記憶體區塊所對應之P2L映射表格的內容後,直接根據此更新過的內容更新L2P映射表格的內容。需注意的是,於執行資料重排程序後,即使目的記憶體區塊尚未被寫滿,記憶體控制器110仍可直接根據更新過的目的記憶體區塊所對應之P2L映射表格的內容更新L2P映射表格的內容。即,於目的記憶體區塊尚未被寫滿之前,只要記憶體控制器110執行過資料重排程序,即可根據目的記憶體區塊所對應之P2L映射表格的最新的內容更新L2P映射表格的內容。
此外,於本發明之實施例中,記憶體控制器110可更建立一子區域連續性表格,並且於執行資料重排程序(例如,於前述第一、第二與第三實施例之任一者中所述之資料重排程序)後更新子區域連續性表格的內容。子區域連續性表格可包括複數欄位,各欄位與一子區域相關聯,用以紀錄相關聯之子區域的資料是否被儲存於連續實體位址。例如,子區域連續性表格的各欄位可儲存一位元。當一子區域的資料經由前述資料重排程序中被搬移至具有連續實體位址的記憶空間時,記憶體控制器110可將與此子區域相關聯的位元值設定為1。反之,與此子區域相關聯的位元值可被設定為0(其可以是一預設值)。
借助子區域連續性表格所記錄的資訊,於自主機裝置130接收到HPB讀取指令時,特別是當HPB讀取指令所帶的傳輸長度(TRANSFER LENGTH)大於1時,記憶體控制器110可藉由檢視子區域連續性表格中與HPB讀取指令中所帶的邏輯位址(例如,起始邏輯位址)所屬的子區域相關聯的位元值判斷HPB讀取指令中所帶的邏輯位址是否屬於資料被儲存於連續實體位址的子區域(例如,判斷子區域連續性表格中與起始邏輯位址所屬的子區域相關聯的位元值是否被設定為1)。若是,只要此起始邏輯位址之後的一或多個後續邏輯位址也屬於資料被儲存於連續實體位址的子區域,則記憶體控制器110可直接根據編碼於起始邏輯位址所對應的HPB項目中的實體位址推導出儲存此起始邏輯位址之後的一或多個後續邏輯位址的資料的一或多個實體位址。如此一來,當藉由子區域連續性表格的內容判斷出起始邏輯位址的資料與一或多個後續邏輯位址的資料被儲存於連續的實體位址時,記憶體控制器110可直接決定略過查找或搜尋L2P映射表格所記錄的映射資訊以找出儲存後續一或多個欲讀取的邏輯位址的資料的一或多個實體位址的操作。因記憶體控制器110僅需參考子區域連續性表格的內容便可推導出所需的實體位址,並判斷是否可略過查找或搜尋L2P映射表格的操作,藉此可使存取操作的速度大幅提升。
需注意的是,由於資料的更新將導致子區域的資料被儲存於不連續的實體位址,因此,當一個子區域所包含的任一邏輯位址的資料被更新且被儲存於其他實體位址時,子區域連續性表格中所記錄的與此子區域相關聯的位元值將由1修改為0。
此外,需注意的是,於本發明之又一些實施例中,記憶體控制器110可建立且同時維護一個以上的前述活化次數表格、讀取次數表格與HPB讀取次數表格,並且可根據紀錄於前述活化次數表格、讀取次數表格與HPB讀取次數表格之內容的任意組合選擇一或多個要進行資料重排的子區域。例如,記憶體控制器110可將前述表格中所記錄各子區域所對應的活化次數、讀取次數與HPB讀取次數加總或取其平均值並加以排序後,根據排序過的加總或平均結果選擇一或多個要進行資料重排的子區域。
當儲存於記憶體裝置120的資料的連續性可藉由根據前述活化次數表格、讀取次數表格及/或HPB讀取次數表格所記錄的之資訊執行資料重排程序而被加強時,存取操作的速度可大幅地被提升,且存取效能也可大幅地被改善。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
200:邏輯單元
A-1、A-2、A-3、A-4、B-1、B-2、B-3、C-1、C-2、C-3、C-4、C-5、C-6、D-1、D-2、D-3、D-4、D-5、D-6、D-7:操作
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圖係顯示根據本發明之第二實施例所述之資料處理方法流程圖。
第10圖係顯示根據本發明之第三實施例所述之資料處理方法流程圖。
第11圖係顯示根據本發明之一實施例所述之資料重排程序的操作。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (15)
- 一種資料儲存裝置,包括: 一記憶體裝置,包括複數記憶體區塊,該等記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之該等邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域;以及 一記憶體控制器,耦接至該記憶體裝置,用以存取該記憶體裝置,並且響應於由一主機裝置發出之一讀取指令更新一讀取次數表格的內容,其中該讀取指令帶有至少一個選定的邏輯位址, 其中該讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數,並且該記憶體控制器藉由增加該選定的邏輯位址所屬之該子區域所對應之該讀取次數更新該讀取次數表格的內容,並且 其中該記憶體控制器更根據該讀取次數表格的內容選擇至少一個子區域,並且執行一資料重排程序用以將屬於被選擇的該至少一個子區域的該等邏輯位址的資料搬移至該記憶體裝置中具有連續實體位址的一第一記憶空間。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更將該讀取次數表格中記錄的該等讀取次數排序,並且根據排序過的該等讀取次數選擇該至少一個子區域。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更判斷屬於被選擇的該至少一個子區域的該等邏輯位址的資料是否被儲存於連續實體位址,以及當屬於被選擇的該至少一個子區域的該等邏輯位址的資料並未被儲存於連續實體位址時,該記憶體控制器更將該等邏輯位址的資料搬移至具有連續實體位址的該第一記憶空間。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更根據該讀取次數表格所記錄之該等讀取次數計算一平均讀取次數,並且根據該平均讀取次數選擇該至少一個子區域。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更於該資料重排程序中將被選擇的該至少一個子區域所屬之一區域的資料搬移至該記憶體裝置中具有連續實體位址的一第二記憶空間。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該第一記憶空間為一第一記憶體區塊,該記憶體控制器更響應於將屬於被選擇的該至少一個子區域的該等邏輯位址的資料搬移至該第一記憶空間的操作更新一第一映射表格的內容,該第一映射表格用以紀錄該第一記憶體區塊之複數實體位址之實體至邏輯映射資訊,並且該記憶體控制器更於執行該資料重排程序後直接根據該第一映射表格的內容更新一第二映射表格的內容,其中該第二映射表格用以紀錄該記憶體裝置之該等邏輯位址之邏輯至實體映射資訊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更建立一子區域連續性表格,並且於執行該資料重排程序後更新該子區域連續性表格的內容,其中該子區域連續性表格包括複數欄位,各欄位與一子區域相關聯,用以紀錄屬於相關聯之該子區域的該等邏輯位址的資料是否被儲存於連續實體位址。
- 一種資料處理方法,適用於一資料儲存裝置,其中該資料儲存裝置包括一記憶體裝置與一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該等記憶體區塊對應於複數邏輯單元,各邏輯單元分別對應於複數邏輯位址,各邏輯單元所對應之該等邏輯位址被劃分為複數區域,並且各區域進一步被劃分為複數子區域,該記憶體控制器耦接至該記憶體裝置,用以存取該記憶體裝置,該資料處理方法由該記憶體控制器所執行並包括: 建立一讀取次數表格,並且響應於由一主機裝置發出之一讀取指令更新該讀取次數表格的內容,其中該讀取指令帶有至少一個選定的邏輯位址,該讀取次數表格包括複數欄位,各欄位用以記錄相關聯之一子區域所對應之一讀取次數; 根據該讀取次數表格的內容選擇至少一個子區域;以及 執行一資料重排程序,用以將屬於被選擇的該至少一個子區域的該等邏輯位址的資料搬移至該記憶體裝置中具有連續實體位址的一第一記憶空間。
- 如申請專利範圍第8項所述之資料處理方法,其中該讀取次數表格的內容係藉由增加該選定的邏輯位址所屬之該子區域所對應之該讀取次數而被更新。
- 如申請專利範圍第8項所述之資料處理方法,其中根據該讀取次數表格的內容選擇該至少一個子區域之步驟更包括: 將該讀取次數表格中記錄的該等讀取次數排序;以及 根據排序過的該等讀取次數選擇該至少一個子區域。
- 如申請專利範圍第8項所述之資料處理方法,其中執行該資料重排程序之步驟更包括: 判斷屬於被選擇的該至少一個子區域的該等邏輯位址的資料是否被儲存於連續實體位址;以及 當屬於被選擇的該至少一個子區域的該等邏輯位址的資料並未被儲存於連續實體位址時,將該等邏輯位址的資料搬移至具有連續實體位址的該第一記憶空間。
- 如申請專利範圍第8項所述之資料處理方法,其中根據該讀取次數表格的內容選擇該至少一個子區域之步驟更包括: 根據該讀取次數表格所記錄之該等讀取次數計算一平均讀取次數;以及 根據該平均讀取次數選擇該至少一個子區域。
- 如申請專利範圍第8項所述之資料處理方法,其中執行該資料重排程序之步驟更包括: 將被選擇的該至少一個子區域所屬之一區域的資料搬移至該記憶體裝置中具有連續實體位址的一第二記憶空間。
- 如申請專利範圍第8項所述之資料處理方法,其中該第一記憶空間為一第一記憶體區塊,該資料處理方法更包括: 響應於將被屬於被選擇的該至少一個子區域的該等邏輯位址的資料搬移至該第一記憶空間的操作更新一第一映射表格的內容,其中該第一映射表格用以紀錄該第一記憶體區塊之複數實體位址之實體至邏輯映射資訊;以及 於執行該資料重排程序後直接根據該第一映射表格的內容更新一第二映射表格的內容,其中該第二映射表格用以紀錄該記憶體裝置之該等邏輯位址之邏輯至實體映射資訊。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 建立一子區域連續性表格,其中該子區域連續性表格包括複數欄位,各欄位與一子區域相關聯,用以紀錄屬於相關聯之該子區域的該等邏輯位址的資料是否被儲存於連續實體位址;以及 於執行該資料重排程序後更新該子區域連續性表格的內容。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110115614.4A CN113961140B (zh) | 2020-07-02 | 2021-01-28 | 数据处理方法及对应的数据储存装置 |
US17/246,711 US11709612B2 (en) | 2020-07-02 | 2021-05-02 | Storage and method to rearrange data of logical addresses belonging to a sub-region selected based on read counts |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063047887P | 2020-07-02 | 2020-07-02 | |
US63/047,887 | 2020-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202203032A TW202203032A (zh) | 2022-01-16 |
TWI766527B true TWI766527B (zh) | 2022-06-01 |
Family
ID=80681089
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100237A TWI748835B (zh) | 2020-07-02 | 2021-01-05 | 資料處理方法及對應之資料儲存裝置 |
TW110100227A TWI766527B (zh) | 2020-07-02 | 2021-01-05 | 資料處理方法及對應之資料儲存裝置 |
TW110100222A TWI766526B (zh) | 2020-07-02 | 2021-01-05 | 資料處理方法及對應之資料儲存裝置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100237A TWI748835B (zh) | 2020-07-02 | 2021-01-05 | 資料處理方法及對應之資料儲存裝置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100222A TWI766526B (zh) | 2020-07-02 | 2021-01-05 | 資料處理方法及對應之資料儲存裝置 |
Country Status (1)
Country | Link |
---|---|
TW (3) | TWI748835B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI808010B (zh) * | 2022-09-26 | 2023-07-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI585778B (zh) * | 2013-11-05 | 2017-06-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
US20180107593A1 (en) * | 2015-04-28 | 2018-04-19 | Nec Corporation | Information processing system, storage control apparatus, storage control method, and storage control program |
TW201917581A (zh) * | 2017-10-17 | 2019-05-01 | 聯發科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
TWI661303B (zh) * | 2017-11-13 | 2019-06-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI691839B (zh) * | 2016-11-28 | 2020-04-21 | 慧榮科技股份有限公司 | 資料管理方法 |
US20200151110A1 (en) * | 2017-07-31 | 2020-05-14 | Micron Technology, Inc. | Memory addressing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713380B2 (en) * | 2011-05-03 | 2014-04-29 | SanDisk Technologies, Inc. | Non-volatile memory and method having efficient on-chip block-copying with controlled error rate |
US9007860B2 (en) * | 2013-02-28 | 2015-04-14 | Micron Technology, Inc. | Sub-block disabling in 3D memory |
US20150301964A1 (en) * | 2014-02-18 | 2015-10-22 | Alistair Mark Brinicombe | Methods and systems of multi-memory, control and data plane architecture |
KR20150135980A (ko) * | 2014-05-26 | 2015-12-04 | 삼성전자주식회사 | 디스플레이 제어 방법 및 전자 장치 |
US10176036B2 (en) * | 2015-10-29 | 2019-01-08 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US20170372448A1 (en) * | 2016-06-28 | 2017-12-28 | Ingo Wald | Reducing Memory Access Latencies During Ray Traversal |
US10452552B2 (en) * | 2017-04-17 | 2019-10-22 | Intel Corporation | Memory-based dependency tracking and cache pre-fetch hardware for multi-resolution shading |
US11016696B2 (en) * | 2018-09-14 | 2021-05-25 | Commvault Systems, Inc. | Redundant distributed data storage system |
US20200167091A1 (en) * | 2018-11-27 | 2020-05-28 | Commvault Systems, Inc. | Using interoperability between components of a data storage management system and appliances for data storage and deduplication to generate secondary and tertiary copies |
-
2021
- 2021-01-05 TW TW110100237A patent/TWI748835B/zh active
- 2021-01-05 TW TW110100227A patent/TWI766527B/zh active
- 2021-01-05 TW TW110100222A patent/TWI766526B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI585778B (zh) * | 2013-11-05 | 2017-06-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
US20180107593A1 (en) * | 2015-04-28 | 2018-04-19 | Nec Corporation | Information processing system, storage control apparatus, storage control method, and storage control program |
TWI691839B (zh) * | 2016-11-28 | 2020-04-21 | 慧榮科技股份有限公司 | 資料管理方法 |
US20200151110A1 (en) * | 2017-07-31 | 2020-05-14 | Micron Technology, Inc. | Memory addressing |
TW201917581A (zh) * | 2017-10-17 | 2019-05-01 | 聯發科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
TWI661303B (zh) * | 2017-11-13 | 2019-06-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202203038A (zh) | 2022-01-16 |
TW202203031A (zh) | 2022-01-16 |
TWI748835B (zh) | 2021-12-01 |
TWI766526B (zh) | 2022-06-01 |
TW202203032A (zh) | 2022-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113885778B (zh) | 数据处理方法及对应的数据储存装置 | |
CN113961140B (zh) | 数据处理方法及对应的数据储存装置 | |
CN113900582B (zh) | 数据处理方法及对应的数据储存装置 | |
US10642731B2 (en) | Memory management method and storage controller | |
US10339045B2 (en) | Valid data management method and storage controller | |
CN113885779B (zh) | 数据处理方法及对应的数据储存装置 | |
TWI766527B (zh) | 資料處理方法及對應之資料儲存裝置 | |
US10635583B2 (en) | Memory management method and storage controller | |
TWI758944B (zh) | 資料處理方法及對應之資料儲存裝置 | |
CN113835617B (zh) | 数据处理方法及对应的数据储存装置 | |
TWI808011B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI829363B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI766431B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI814590B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI808010B (zh) | 資料處理方法及對應之資料儲存裝置 |