TWI855819B - 借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 - Google Patents
借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 Download PDFInfo
- Publication number
- TWI855819B TWI855819B TW112130445A TW112130445A TWI855819B TW I855819 B TWI855819 B TW I855819B TW 112130445 A TW112130445 A TW 112130445A TW 112130445 A TW112130445 A TW 112130445A TW I855819 B TWI855819 B TW I855819B
- Authority
- TW
- Taiwan
- Prior art keywords
- address mapping
- data
- logical address
- physical
- mapping table
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 title claims abstract description 20
- 238000013507 mapping Methods 0.000 claims abstract description 399
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000007689 inspection Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008094 contradictory effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Abstract
一種借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法包含:利用記憶體控制器來透過傳輸介面電路自主機裝置接收複數個主機命令,分別根據主機命令中一組第一命令以及一組第二命令來利用第一主動區塊以及第二主動區塊接收一組第一資料以及一組第二資料,並更新第一與第二暫時實體至邏輯位址映射表;以及因應任一暫時實體至邏輯位址映射表的表區域為滿,根據第一暫時實體至邏輯位址映射表來更新第一實體至邏輯位址映射表並根據第二暫時實體至邏輯位址映射表來選擇性地更新第二實體至邏輯位址映射表,以供進行後續處理。
Description
本發明係有關於記憶體控制,且尤指一種借助非平衡表更新來進行一預定通訊架構中一記憶體裝置的資料存取管理的方法以及相關裝置。
記憶體裝置可包含有快閃記憶體以供儲存資料,而針對快閃記憶體的存取管理相當複雜,舉例來說,記憶體裝置可以是一記憶卡、一固態硬碟(solid state drive, SSD)或一嵌入式儲存裝置(例如符合通用快閃儲存規範(universal flash storage, UFS)的嵌入式儲存裝置),記憶體裝置可用以儲存不同檔案(例如系統檔案或使用者檔案等等),當系統檔案時常地被存取時,某些資料可能會變為無效資料,當無效資料與某些有效資料混合於記憶體裝置內的相同儲存區塊時,通常需要進行垃圾回收(garbage collection, GC)來釋放更多儲存空間以供進一步的使用,其增加了寫入放大(write amplification)的現象,先前技術嘗試解決此問題,然而,可能引入了更多問題(例如某些副作用),因此,需要一種創新的方法以及相關架構來在不引入副作用的情況下或藉由不太可能引入副作用的方式解決該些問題。
因此,本發明的目的之一在於提供一種借助非平衡表更新來進行一預定通訊架構(例如一通用快閃儲存通訊架構)中一記憶體裝置的資料存取管理的方法以及相關裝置,以解決上述問題。
本發明至少一實施例提供了一種借助非平衡表更新來進行一預定通訊架構中一記憶體裝置的資料存取管理的方法,其中該方法可應用於記憶體裝置的一記憶體控制器。記憶體裝置可包含有記憶體控制器以及一非揮發性記憶體,非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),並且至少一非揮發性記憶體元件可包含有複數個區塊,該方法可包含有:利用記憶體控制器來透過記憶體控制器的一傳輸介面電路自一主機裝置接收複數個主機命令,分別根據複數個主機命令之中的一組第一命令以及一組第二命令來利用一第一主動區塊以及一第二主動區塊接收一組第一資料以及一組第二資料,以及更新對應於第一主動區塊的一第一暫時實體至邏輯位址映射表以及對應於第二主動區塊的一第二暫時實體至邏輯位址映射表,其中該組第一命令以及該組第二命令分別指示要求將該組第一資料以及該組第二資料寫入至記憶體裝置中;以及因應第一暫時實體至邏輯位址映射表以及第二暫時實體至邏輯位址映射表之中任一個暫時實體至邏輯位址映射表的一表區域為滿,根據第一暫時實體至邏輯位址映射表來更新非揮發性記憶體中的一第一實體至邏輯位址映射表並根據第二暫時實體至邏輯位址映射表來選擇性地更新非揮發性記憶體中的一第二實體至邏輯位址映射表,以供進行後續處理,其中第一暫時實體至邏輯位址映射表以及第二實體至邏輯位址映射表係分別用以佔用記憶體控制器內一隨機存取記憶體中具有一第一大小的一第一表區域以及具有一第二大小的一第二表區域。
除了上述方法之外,本發明亦提供了一種記憶體裝置的記憶體控制器,其中記憶體裝置包含有記憶體控制器以及一非揮發性記憶體。非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),至少一非揮發性記憶體元件可包含有複數個區塊,此外,記憶體控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制記憶體控制器,以允許主機裝置透過記憶體控制器來存取非揮發性記憶體,並且借助非平衡表更新來進行一預定通訊架構中記憶體裝置的資料存取管理。記憶體控制器另包含有一傳輸介面電路,並且傳輸介面電路係用以與主機裝置進行通訊,舉例來說,記憶體控制器透過記憶體控制器的傳輸介面電路來自主機裝置接收複數個主機命令,分別根據複數個主機命令之中的一組第一命令以及一組第二命令來利用一第一主動區塊以及一第二主動區塊接收一組第一資料以及一組第二資料,以及更新對應於第一主動區塊的一第一暫時實體至邏輯位址映射表以及對應於第二主動區塊的一第二暫時實體至邏輯位址映射表,其中該組第一命令以及該組第二命令分別指示要求將該組第一資料以及該組第二資料寫入至記憶體裝置中;以及因應第一暫時實體至邏輯位址映射表以及第二暫時實體至邏輯位址映射表之中任一個暫時實體至邏輯位址映射表的一表區域為滿,記憶體控制器根據第一暫時實體至邏輯位址映射表來更新非揮發性記憶體中的一第一實體至邏輯位址映射表並根據第二暫時實體至邏輯位址映射表來選擇性地更新非揮發性記憶體中的一第二實體至邏輯位址映射表,以供進行後續處理,其中第一暫時實體至邏輯位址映射表以及第二實體至邏輯位址映射表係分別用以佔用記憶體控制器內一隨機存取記憶體中具有一第一大小的一第一表區域以及具有一第二大小的一第二表區域。
除了上述方法外,本發明亦提供了一種包含有上述記憶體控制器的記憶體裝置,其中記憶體裝置包含有:非揮發性記憶體,用以儲存資訊;以及記憶體控制器,耦接於非揮發性記憶體,並用以控制記憶體裝置的操作。
除了上述方法外,本發明亦提供了一種包含有上述記憶體裝置的電子裝置,其中電子裝置另包含有耦接於記憶體裝置的主機裝置。主機裝置可包含有:至少一處理器,用以控制主機裝置的操作;以及一電源供應電路,耦接於至少一處理器,並用以提供電源給至少一處理器以及記憶體裝置。此外,記憶體裝置提供儲存空間給主機裝置。
根據某些實施例,該裝置可包含有電子裝置的至少一部分(例如一部分或全部),舉例來說,該裝置可包含有記憶體裝置內的記憶體控制器,在另一範例中,該裝置可包含有記憶體裝置,在再另一範例中,該裝置可包含有電子裝置。
根據某些實施例,記憶體裝置可為主機裝置儲存資料,其中可能需要更新儲存資料中的某些資料,為了解決先前技術所遇到的問題,建議記憶體裝置可根據該方法的至少一控制方案(例如一個或多個控制方案)來操作以進行相關操作,且尤指於資料接收期間利用記憶體控制器內一揮發性記憶體中的多個非平衡暫時位址映射表(例如分別佔用不同大小之表區域的多個暫時位址映射表)來管理資料流。
本發明的方法以及相關裝置可保證記憶體裝置在不同情況下可適當地操作,舉例來說,記憶體裝置可利用多個主動區塊來進行資料接收並利用多非平衡暫時位址映射表來管理該多個主動區塊,以增加整體效能,此外,本發明的方法以及相關裝置可在不引入副作用的情況下或藉由不太可能引入副作用的方式解決先前技術所遇到的問題。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有至少一處理器(例如一個或多個處理器;其可被統稱為處理器52)、電源供應電路54以及傳輸介面電路58,其中處理器52與電源供應電路54可透過匯流排而彼此耦接,並且可耦接於電源供應電路54來取得電源。處理器52可用以控制主機裝置50的操作,以及電源供應電路54係用以提供電源至處理器52、傳輸介面電路58以及記憶體裝置100,並輸出一個或多個驅動電壓至記憶體裝置100。記憶體裝置100可用以提供儲存空間給主機裝置50,並且可自主機裝置50取得一個或多個驅動電壓以作為記憶體裝置100的電源。主機裝置50的範例可包含有但不限於:多功能手機、平板電腦、可穿戴裝置以及個人電腦,例如桌上型電腦以及筆記型電腦,記憶體裝置100的範例可包含有但不限於:可攜式記憶體裝置(例如符合SD / MMC、CF、MS或XD規範的記憶卡、固態硬碟(solid state drive, SSD)以及不同類型的嵌入式記憶體裝置(例如符合通用快閃儲存(universal flash storage, UFS)規範或嵌入式多媒體卡(embedded multi media card, eMMC)規範的嵌入式記憶體裝置)。根據本實施例,記憶體裝置100可包含有一控制器,諸如記憶體控制器110,並且可另包含有非揮發性記憶體120(為簡潔起見,在第1圖中標記為“NV記憶體”),其中記憶體控制器110係用以存取非揮發性記憶體120,以及非揮發性記憶體120係用以儲存資訊。非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、以及122-N(為簡潔起見,在第1圖中分別標記為“NV記憶體元件”),其中“N”可以代表大於1的正整數,舉例來說,非揮發性記憶體120可以是快閃記憶體,並且複數個非揮發性記憶體元件122-1、122-2、…、以及122-N可以是複數個快閃記憶體晶片或複數個快閃記憶體裸晶(die),但是本發明不限於此。
如第1圖所示,記憶體控制器110可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory, ROM)112M;為簡潔起見,標記為“ROM”)、控制邏輯電路114、隨機存取記憶體116(random access memory, RAM;為簡潔起見,標記為“RAM”,舉例來說,其可以藉由靜態隨機存取記憶體(static random access memory, SRAM)來實現)以及傳輸介面電路118,其中上述元件之至少一部分(例如一部分或全部)可通過匯流排彼此耦接。隨機存取記憶體116可用以提供內部儲存空間給記憶體控制器110(例如可暫時地儲存資訊),但是本發明不限於此,此外,本實施例之唯讀記憶體112M係用以儲存程式碼112C,並且微處理器112係用以執行程式碼112C以控制非揮發性記憶體120的存取,要注意的是,程式碼112C也可被儲存於隨機存取記憶體116或任一類型的記憶體,此外,控制邏輯電路114可用以控制非揮發性記憶體120,並包含有一錯誤校正碼(error correction code, ECC)電路(未顯示於第1圖),其中錯誤校正碼電路可進行錯誤校正碼編碼以及錯誤校正碼解碼以保護資料及/或進行錯誤校正。傳輸介面電路118可包含有多個子電路,並且該多個子電路可彼此互動以進行通訊,傳輸介面電路118可符合不同通訊規範(例如序列先進技術附件(Serial Advanced Technology Attachment, SATA)規範、通用序列匯流排(Universal Serial Bus, USB)規範、快捷外部連接標準(Peripheral Component Interconnect Express, PCIe)規範、嵌入式多媒體卡規範或通用快閃儲存規範)之中的一個或多個通訊規範,並可為記憶體裝置100來根據該一個或多個通訊規範與主機裝置50(例如傳輸介面電路58)進行通訊。類似地,傳輸介面電路58可符合該一個或多個通訊規範,並可為主機裝置50來根據該一個或多通訊規範與記憶體裝置100(例如傳輸介面電路118)進行通訊。舉例來說,傳輸介面電路118的該多個子電路可包含有通用快閃儲存控制器118C(為簡潔起見,標記為“UFS控制器”)、標準化通訊協定(Unified Protocol,通常稱為UniPro)電路118U(為簡潔起見,標記為“UniPro電路”)以及一實體層(physical layer, PHY)電路(例如符合MIPI聯盟相關規格之M實體層(M-PHY)電路118M),並且傳輸介面電路58可被實現為具有與傳輸介面電路118之電路架構類似或相同的電路架構(例如多個相對應的子電路),但是本發明不限於此。
在本實施例中,主機裝置50可以藉由將複數個主機命令以及相對應的邏輯位址傳送至記憶體控制器110來間接地存取記憶體裝置100內的非揮發性記憶體120,記憶體控制器110接收複數個主機命令以及相對應的邏輯位址,並且分別將複數個機命令轉換成複數個記憶體操作命令(其可簡稱為操作命令),再利用複數個操作命令來控制非揮發性記憶體120,以對非揮發性記憶體120內相對應的實體位址的記憶體單元或資料頁面(data page)進行讀取或寫入/編程等等,其中實體位址可以與邏輯位址相關。舉例來說,記憶體控制器110可產生或更新至少一邏輯至實體(logical-to-physical, L2P)位址映射表來管理實體位址與邏輯位址之間的關係,其中非揮發性記憶體120可儲存全域(global)邏輯至實體位址映射表120T以供記憶體控制器110控制記憶體裝置100來存取非揮發性記憶體120中的資料,但是本發明不限於此。此外,記憶體控制器110可分別產生或更新多個實體至邏輯(physical-to-logical, P2L)位址映射表(例如實體至邏輯位址映射表T20以及T21),舉例來說,記憶體控制器110可分別參考實體至邏輯位址映射表T20以及T21來進行垃圾回收(garbage collection, GC)操作。
為了更好的理解,全域邏輯至實體位址映射表120T可位於非揮發性記憶體122-1元件內的一預定區域(例如一系統區域)中,其中多個實體至邏輯址映射表(例如實體至邏輯位址映射表T20以及T21)可位於非揮發性記憶體122-1元件內的預定區域(例如系統區域)中,但是本發明不限於此。舉例來說,全域邏輯至實體位址映射表120T可被劃分成複數個區域(local)邏輯至實體位址映射表,並且該複數個區域邏輯至實體位址映射表可儲存於非揮發性記憶體元件122-1、122-2以及122-N的一個或多個非揮發性記憶體元件中,尤其是,可分別儲存於非揮發性記憶體元件122-1、122-2以及122-N中。當需要時,記憶體控制器110可將全域邏輯至實體位址映射表120T的至少一部分(例如一部分或全部)加載至隨機存取記憶體116或其它記憶體中,舉例來說,記憶體控制器110可將該複數個區域邏輯至實體位址映射表之中的一區域邏輯至實體位址映射表加載至隨機存取記憶體116以作為一暫時邏輯至實體位址映射表116T,以供根據儲存為暫時邏輯至實體位址映射表116T的該區域邏輯至實體位址映射表來存取非揮發性記憶體120中的資料,但是本發明不限於此。
此外,上述至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1, 122-2, …, 122-N })可包含有複數個區塊,其中記憶體控制器110可對非揮發性記憶體120進行資料抹除操作的最小單位為一區塊,並且記憶體控制器110可對非揮發性記憶體120進行資料寫入操作的最小單位為一頁面,但是本發明不限於此。舉例來說,非揮發性記憶體元件122-1、122-2、…以及122-N之中的任一個非揮發性記憶體元件122-n(符號“n”可代表在區間[1,N]中的任一整數)可包含有複數個區塊,並且該複數個區塊內的一區塊可包含並記錄一特定頁面數量,其中記憶體控制器110可根據一區塊位址以及一頁面位址來存取該多個區塊內某個區塊的某個頁面。
根據某些實施例,記憶體控制器110可開放(open)非揮發性記憶體120中的上述至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1, 122-2, …, 122-N })的該複數個區塊之中的至少一區塊(例如一個或多個區塊)以作為至少一主動區塊(active block;例如一個或多個主動區塊)以供進行資料緩衝,並利用上述至少一主動區塊來自主機裝置50接收資料(例如主機寫入資料)以供寫入至非揮發性記憶體120,為了更好的理解,該資料(例如主機寫入資料,諸如待寫入至非揮發性記憶體120的資料)可包含有不同類型的資料,並且上述至少一主動區塊可包含有多個主動區塊。於自主機裝置50接收該資料(例如主機寫入資料,諸如待寫入至非揮發性記憶體120的資料)的期間,記憶體控制器110可利用該多個主動區塊來根據至少一預定規則(例如一個或多個預定規則)接收主機寫入資料(例如待寫入至非揮發性記憶體120的資料)之中不同類型的資料,並產生或更新對應於該多個主動區塊的多個暫時實體至邏輯位址映射表(例如多個暫時實體至邏輯位址映射表T10以及T11),尤其是,記錄該多個暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表T10以及T11)中的多個實體至邏輯表項目(table entry)以指示分別針對該多個主動區塊的多個實體至邏輯位址映射關係,但是本發明不限於此,舉例來說,上述至少一預定規則可變化,並且相關操作也可對應地變化,此外,記憶體控制器110可將來自該多個暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表T10以及T11)的該多個實體至邏輯表項目複製至該多個實體至邏輯位址映射表(例如實體至邏輯位址映射表T20以及T21)以分別根據該多個暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表T10以及T11)來產生或更新該多個實體至邏輯位址映射表(例如實體至邏輯位址映射表T20以及T21)。
根據某些實施例,記憶體裝置100(例如記憶體控制器110)的操作可包含有:
(1)記憶體裝置100(例如記憶體控制器110)可透過記憶體控制器110的傳輸介面電路118來自主機裝置50接收一第一命令,其中第一命令可攜帶有與待寫入之第一資料相關的第一資訊,舉例來說,第一資訊可包含有至少一第一邏輯位址(例如一個或多個邏輯位址)以供指示至少一第一邏輯位址區域(例如一個或多個第一邏輯位址區域),並且第一命令可指示要求將第一資料寫入至上述至少一第一邏輯位址區域;
(2)記憶體裝置100(例如記憶體控制器110)可對第一資訊進行一第一檢查操作以產生一第一判斷結果,其中第一判斷結果可指示第一資料係屬於熱資料(hot data)或冷資料(cold data),並且熱資料與冷資料可分別代表頻繁存取資料與非頻繁存取資料;
(3)記憶體裝置100(例如記憶體控制器110)可根據第一判斷結果以及上述至少一預定規則(例如一個或多個預定規則)來決定該多個主動區塊之中的一擇取主動區塊,其中該多個主動區塊可包含有一混合主動區塊以及一熱主動區塊,混合主動區塊用以接收混合資料,熱主動區塊用以接收熱資料的一第一部分,以及混合資料可包含有冷資料以及熱資料的另一部分;以及
(4)記憶體裝置100(例如記憶體控制器110)可利用該擇取主動區塊來接收第一資料,並更新對應於該擇取主動區塊的一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表T10與T11的其一)以供產生或更新非揮發性記憶體120中的一實體至邏輯位址映射表(例如實體至邏輯位址映射表T20與T21之中一相對應的實體至邏輯位址映射表)來進行後續處理,其中該暫時實體至邏輯位址映射表可以是分別對應於該多個主動區塊之該多個暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表T10與T11)的其一,以及該多個暫時邏輯至實體位址映射表(暫時實體至邏輯位址映射表T10與T11)可用以分別佔用(occupy)記憶體控制器110內隨機存取記憶體116中不同大小的表區域;
但是本發明不限於此,根據某些實施例,記憶體裝置100(例如記憶體控制器110)可用以儲存不同大小的檔案,諸如大檔案(例如使用者的使用者檔案)以及小檔案(例如主機裝置50的系統檔案),其中記憶體裝置100(例如記憶體控制器110)可判斷大檔案的資料以及小檔案的資料分別屬於冷資料與熱資料。
第2圖為平衡資料分割與接收控制方案,為了更好的理解,假設記憶體裝置100(例如記憶體控制器110)的一個或多個功能以及其相關特徵可以暫時地被停用(disable),尤其是,記憶體裝置100(例如記憶體控制器110)可根據平衡資料分割與接收控制方案來操作,其中暫時實體至邏輯位址映射表210與211(為簡潔起見,標記為“P2L表”)可分別作為暫時實體至邏輯位址映射表T10與T11的範例,但是本發明不限於此。
如第2圖所示,暫時實體至邏輯位址映射表210與211可用以分別佔用隨機存取記憶體116中具有相同大小的表區域210R與211R,並且該多個主動區塊可包含有冷主動區塊220以及熱主動區塊221(為簡潔起見,標記為“主動區塊”)以分別接收冷資料以及熱資料,此外,對應於冷主動區塊220的暫時實體至邏輯位址映射表210可用以記錄一個或多個實體至邏輯表項目以供指示針對冷主動區塊220的一個或多個實體至邏輯位址映射關係,諸如冷主動區塊220中冷資料的實體至邏輯位址映射關係,並且對應於熱主動區塊221的暫時實體至邏輯位址映射表211可用以記錄一個或多個實體至邏輯表項目以供指示針對熱主動區塊221的一個或多個實體至邏輯位址映射關係,諸如熱主動區塊221中熱資料的實體至邏輯位址映射關係,此外,第一資訊可另包含有第一資料的一第一資料長度。
基於平衡資料分割與接收控制方案,記憶體控制器110可用以根據第一資料長度來產生第一判斷結果,舉例來說,倘若第一資料長度達到(例如大於或等於)一預定資料長度門檻的話,則記憶體控制器110可判斷第一資料屬於冷資料;否則,記憶體控制器110可判斷第一資料屬於熱資料,因此,記憶體控制器110可利用冷主動區塊220來接收並儲存冷資料(例如具有長資料長度的資料),並利用熱主動區塊221來接收並儲存熱資料(例如具有短資料長度的資料)。
根據某些實施例,可藉由不同方法來判斷第一資料是屬於冷資料還是熱資料,舉例來說,根據自主機端(例如主機裝置50)傳送而來的某個主機判斷指示(host-determined indication)來判斷第一資料是屬於冷資料還是熱資料,然而,其可能會導致裝置端(例如記憶體裝置100)的資料錯誤問題,為了保證裝置端所接收到的資料的正確性,當主機判斷指示指出第一資料屬於冷資料時,可能需要為記憶體控制器110尋找在熱主動區塊221中具有與第一資料的邏輯位址相同之邏輯位址的任一資料,或當主機判斷指示指出第一資料屬於熱資料時,可能需要為記憶體控制器110尋找在冷主動區塊220中具有與第一資料的邏輯位址相同之邏輯位址的任一資料,因此,寫入速度可能會因為尋找操作而顯著地下降,根據某些實施例,記憶體控制器110(例如其中的處理電路,諸如微處理器112)可用以借助非平衡表更新來進行記憶體裝置100的資料存取管理,以大幅度地增加寫入速度並藉此增加整體效能。
第3圖為依據本發明一實施例之借助非平衡表更新來進行預定通訊架構(例如一通用快閃儲存通訊架構)中記憶體裝置(例如第1圖所示之記憶體裝置100)的資料存取管理之方法的非平衡資料分割與接收控制方案。該方法係應用於第1圖所示之架構(例如電子裝置10、主機裝置50、記憶體裝置100以及記憶體控制器110,尤其是記憶體控制器110內的元件),舉例來說,記憶體裝置100(例如記憶體控制器110)可根據第3圖所示之非平衡資料分割與接收控制方案來操作,其中暫時實體至邏輯位址映射表310與311(為簡潔起見,標記為“P2L表”)可分別作為暫時實體至邏輯位址映射表T10與T11的範例。
如第3圖所示,暫時實體至邏輯位址映射表310與311可分別用以佔用隨機存取記憶體116中具有不同大小的表區域310R與311R,並且該多個主動區塊可包含有分別接收混合資料以及熱資料的第一部分的混合主動區塊320以及熱主動區塊321(為簡潔起見,標記為“主動區塊”),並且混合資料可包含有冷資料以及熱資料的其它部分(例如上述另一部分),其中混合主動區塊320以及熱主動區塊321可分別作為上述混合主動區塊以及熱主動區塊的範例。此外,對應於混合主動區塊320的暫時實體至邏輯位址映射表310可用以記錄一個或多個實體至邏輯表項目以供指示針對混合主動區塊320的一個或多個實體至邏輯位址映射關係,諸如混合主動區塊320中混合資料(例如冷資料以及熱資料的其它部分)的實體至邏輯位址映射關係,並且對應於熱主動區塊321的暫時實體至邏輯位址映射表311可用以記錄一個或多個實體至邏輯表項目以供指示針對熱主動區塊321的一個或多個實體至邏輯位址映射關係,諸如熱主動區塊321中部分熱資料(例如熱資料的第一部分)的實體至邏輯位址映射關係,此外,第一資訊可包含有第一資料的第一資料長度。
基於非平衡資料分割與接收控制方案,記憶體控制器110可用以根據第一資料長度來產生第一判斷結果,舉例來說,倘若第一資料長度達到(例如大於或等於)預定資料長度門檻的話,則記憶體控制器110可判斷第一資料屬於冷資料;否則,記憶體控制器110可判斷第一資料屬於熱資料。此外,於根據第一判斷結果以及上述至少一預定規則來決定該多個主動區塊之中的擇取主動區塊的期間,記憶體控制器110可選擇性地對第一資訊進行對應於上述至少一預定規則的至少一其它檢查操作(例如一個或多個其它檢查操作)來產生至少一其它判斷結果(例如一個或多個其它判斷結果),以供決定該多個主動區塊之中的擇取主動區塊,其中上述至少一其它判斷結果可指示是否需要針對決定該多個主動區塊之中的擇取主動區塊來進行例外(exceptional)處理,舉例來說,針對決定該多個主動區塊之中的擇取主動區塊而進行的例外處理可用以使得熱資料的其它部分被混合主動區塊320所接收而不是被熱主動區塊321所接收,並使得熱資料的第一部分被熱主動區塊321所接收而不是被混合主動區塊320所接收,因此,記憶體控制器110可利用混合主動區塊320來接收並儲存混合資料,諸如冷資料(例如具有長資料長度的資料)以及熱資料(例如具有短資料長度的資料)之中的其它部分(為了更好的理解,標記為“某些熱資料”),並可利用熱主動區塊321來接收並儲存部分熱資料,諸如熱資料(例如具有短資料長度的資料)之中的第一部分(為了更好的理解,標記為“其它熱資料”),為了簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
與上述例外處理相關的某些實施細節可以表示如下,根據某些實施例,除了一個或多個例外案例(例如某些特別案例)之外,記憶體控制器110可在預設情況下利用混合主動區塊320來接收並儲存屬於冷資料(例如具有長資料長度的資料)的任一資料並利用熱主動區塊321來接收並儲存屬於熱資料(例如具有短資料長度的資料)的任一資料,尤其是,在偵測到該些特別案例之中的任一個特別案例的情況下,記憶體控制器110可利用混合主動區塊320而不是熱主動區塊321來接收並儲存熱資料,其中記憶體控制器110可根據第一判斷結果以及上述至少一其它判斷結果來決定該多個主動區塊之中的擇取主動區塊,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第4圖為依據本發明另一實施例之非平衡資料分割與接收控制方案。舉例來說,記憶體裝置100(例如記憶體控制器110)可根據第4圖所示之非平衡資料分割與接收控制方案來操作,其中暫時實體至邏輯位址映射表310與311(為簡潔起見,標記為“P2L表”)可分別作為暫時實體至邏輯位址映射表T10與T11的範例。與第3圖所示之實施例相比,記憶體控制器110可根據上述主機判斷指示(例如一第一指示)而不是第一資料長度來產生第一判斷結果,舉例來說,除了上述至少一第一邏輯位址之外,第一資訊可另包含有該第一指示以供指出第一資料屬於熱資料還是冷資料,其中當需要時,第一資訊仍可包含有第一資料的第一資料長度,但是本發明不限於此。
基於第4圖所示之非平衡資料分割與接收控制方案,記憶體控制器110可根據該第一指示來產生第一判斷結果,舉例來說,倘若該第一指示係等於一冷資料指示(例如該冷資料指示可指出第一資料屬於由主機裝置50所分類的冷資料)的話,則記憶體控制器110可判斷第一資料屬於冷資料;否則,在該第一指示係等於一熱資料指示(例如該熱資料指示可指出第一資料屬於由主機裝置50所歸類的熱資料)的情況下,記憶體控制器110可判斷第一資料屬於熱資料,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
第5圖為依據本發明一實施例之該方法的工作流程圖。舉例來說,第5圖所示之工作流程可對應至上述一個或多個實施例,但是本發明不限於此。
在步驟S10中,記憶體裝置100(例如記憶體控制器110)可透過記憶體控制器110的傳輸介面電路118來接收來自主機裝置50的第一命令(諸如一命令CMD;為簡潔起見,標記為“輸入主機CMD”),其中第一命令可攜帶有與待寫入之第一資料相關的第一資訊。舉例來說,第一資訊可包含有上述至少一第一邏輯位址(例如至少一邏輯區塊位址(logical block address, LBA),諸如一個或多個邏輯區塊位址)以供指示上述至少一第一邏輯位址區域(例如至少一邏輯區塊位址區域,諸如一個或多個邏輯區塊位址區域),並且第一命令可指示要求將第一資料寫入至上述至少一第一邏輯位址區域(例如上述至少一邏輯區塊位址區域)中。
在步驟S11中,記憶體裝置100(例如記憶體控制器110)可對第一資訊(例如攜帶有命令CMD的資訊)進行第一檢查操作來產生第一判斷結果,以供指示第一資料是否屬於熱資料(為簡潔起見,標記為“熱資料?”),其中第一判斷結果可指示第一資料屬於熱資料還是冷資料,以及熱資料與冷資料可分別代表頻繁存取資料與非頻繁存取資料。如果是(例如第一資料屬於熱資料),則進入步驟S12;如果否(例如第一資料屬於冷資料),則進入步驟S16。
步驟S11中的判斷結果“是”以及“否”可作為第一判斷結果的範例,此外,上述至少一預定規則可包含有一第一預定規則以及一第二預定規則,舉例來說:
(1)第一預定規則:當第一資料係連續資料時,記憶體裝置100(例如記憶體控制器110)係用以利用混合主動區塊320來接收並儲存第一資料,其中記憶體控制器110可根據第一資訊(例如上述至少一第一邏輯位址及/或第一資料長度)來判斷第一資料是否為連續資料;以及
(2)第二預定規則:當在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中找到上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址)之中任一個邏輯位址(例如任一個邏輯區塊位址)時,其可指示位於上述任一個邏輯位址(例如上述任一個邏輯區塊位址)之資料的先前版本存在於混合主動區塊320,記憶體裝置100(例如記憶體控制器110)係用以利用混合主動區塊320來接收並儲存第一資料,其中被混合主動區塊320所接收並儲存的第一資料可變成位於上述任一個邏輯位址(例如上述任一個邏輯區塊位址)之資料的最新版本,並且位於上述任一個邏輯位址(例如上述任一個邏輯區塊位址)之資料的先前版本可變成無效資料;
其中步驟S12與步驟S14之中任一個步驟的判斷結果“是”以及“否”可作為上述至少一其它判斷結果的範例,但是本發明不限於此。針對第二預定規則,利用混合主動區塊320來接收並儲存第一資料可保證資料的正確性,尤其是,防止資料的先前版本與最新版本被不必要地分散從而避免相關的垃圾回收加載,如此一來,可增加整體性能。
如第5圖所示之工作流程中的某些部分工作流程所示,根據第一判斷結果(例如步驟S11中的判斷結果“是”以及“否”的其一)以及上述至少一預定規則來決定該多個主動區塊(例如混合主動區塊320以及熱主動區塊321)之中的擇取主動區塊的步驟可包含有選擇性地對第一資訊(例如上述至少一第一邏輯位址及/或第一資料長度)進行對應於上述至少一預定規則(例如第一預定規則以及第二預定規則)的上述至少一其它檢查操作(例如步驟S12與S14的操作)以產生上述至少一其它判斷結果,以供決定該多個主動區塊之中的擇取主動區塊,舉例來說,上述至少一其它檢查操作可包含有一第二檢查操作(例如步驟S12的操作),以及上述至少一其它判斷結果可包含有藉由進行第二檢查操作所取得的一第二判斷結果,其中第二判斷結果可指示第一資料是否為連續資料。
在步驟S12中,記憶體裝置100(例如記憶體控制器110)可判斷第一資料是否為連續資料,舉例來說,根據上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址)是否包含有多於一個的邏輯位址(例如多於一個的邏輯區塊位址)及/或第一資料長度是否大於一以指示多於一個的邏輯位址(例如多於一個的邏輯區塊位址)來判斷第一資料是否為連續資料,其中當上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址)包含有多於一個的邏輯位址(例如上述至少一邏輯區塊位址)或第一資料長度大於一以指示多於一個的邏輯位址(例如多於一個的邏輯區塊位址)時,記憶體控制器110可判斷第一資料為連續資料,但是本發明不限於此,根據某些實施例,記憶體裝置100(例如記憶體控制器110)可根據上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址)是否為剛寫入的先前資料之一先前邏輯位址(例如一先前邏輯區塊位址)的下一個邏輯位址(例如下一個邏輯區塊位址)來判斷第一資料是否為連續資料,其中當上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址)係剛寫入的先前資料之先前邏輯位址(例如先前邏輯區塊位址)的該下一個邏輯位址(例如該下一個邏輯區塊位址)時,記憶體控制器110可判斷第一資料係連續資料。如果是(例如第一資料是連續資料),則進入步驟S16;如果否(例如第一資料不是連續資料),則進入步驟S13。
針對步驟S13與S14的操作,第3圖與第4圖所示之架構中的任一個架構可作為範例,該多個暫時實體至邏輯位址映射表可包含有對應於混合主動區塊320的暫時實體至邏輯位址映射表310以及對應於熱主動區塊321的暫時實體至邏輯位址映射表311,舉例來說,上述至少一其它檢查操作可另包含有一第三檢查操作(例如步驟S14的操作),並且上述至少一其它判斷結果可另包含有進行第三檢查操作所取得的一第三判斷結果,其中第三判斷結果可指示是否在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中找到上述至少一第一邏輯位址(例如上述至少一邏輯區塊位址),諸如上述任一個邏輯位址(例如上述任一個邏輯區塊位址),之中的一相同邏輯位址(例如一相同邏輯區塊位址)。
在步驟S13中,記憶體裝置100(例如記憶體控制器110)可在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中尋找該相同邏輯位址(例如該相同邏輯區塊位址)。
在步驟S14中,記憶體裝置100(例如記憶體控制器110)可判斷是否在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中找到該相同邏輯位址(例如該相同邏輯區塊位址),如果是(例如在暫時實體至邏輯位址映射表310中找到該相同邏輯區塊位址),則進入步驟S16;如果否(例如在暫時實體至邏輯位址映射表310中沒有找到該相同邏輯區塊位址),則進入步驟S15。
在步驟S15中,記憶體裝置100(例如記憶體控制器110)可將該擇取主動區塊判斷為熱主動區塊321,尤其是,利用熱主動區塊321來接收第一資料,其中第一資料可被寫入至熱主動區塊321中。
在步驟S16中,記憶體裝置100(例如記憶體控制器110)可將該擇取主動區塊判斷為混合主動區塊320,尤其是,利用混合主動區塊320來接收第一資料,其中第一資料可被寫入至混合主動區塊320中。
在步驟S17中,記憶體裝置100(例如記憶體控制器110)可將對應於第一資料的至少一實體至邏輯表項目(例如一個或多個實體至邏輯表項目)記錄於對應於該擇取主動區塊(例如混合主動區塊320或熱主動區塊321)的暫時實體至邏輯位址映射表(例如對應於混合主動區塊320的暫時實體至邏輯位址映射表310或對應於熱主動區塊321的暫時實體至邏輯位址映射表311)中(為簡潔起見,標記為“記錄P2L項目”),以供指示第一資料的至少一實體至邏輯位址映射關係(例如一個或多個實體至邏輯位址映射關係)。
在步驟S18中,記憶體裝置100(例如記憶體控制器110)可為該多個主動區塊(例如混合主動區塊320以及熱主動區塊321)之中至少一目標主動區塊(例如一個或多個目標主動區塊)來選擇性地分別更新全域邏輯至實體位址映射表120T中的邏輯至實體表項目(為簡潔起見,標記為“L2P項目”)以及實體至邏輯位址映射表T20與T21中的實體至邏輯表項目(為簡潔起見,標記為“P2L項目”),舉例來說,記憶體控制器110可選擇性地將實體至邏輯表項目(例如對應於上述至少一目標主動區塊之至少一暫時實體至邏輯位址映射表的所有實體至邏輯表項目)以及相對應的邏輯至實體表項目(例如對應於上述實體至邏輯表項目的邏輯至實體表項目)更新於非揮發性記憶體120(例如其系統區域)中的多個相關表區塊(例如用來分別儲存實體至邏輯位址映射表T20與T21以及全域邏輯至實體位址映射表120T的多個表區塊)。
在步驟S19中,記憶體裝置100(例如記憶體控制器110)可判斷是否進行下一個操作,舉例來說,根據非揮發性記憶體120的一資料區域內的儲存空間是否足夠來判斷是否進行下一個操作,如果是(例如非揮發性記憶體120的資料區域內的儲存空間足夠),則進入步驟S10;如果否(例如非揮發性記憶體120的資料區域內的儲存空間不足),則第5圖所示之工作流程結束。
該多個暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310與311)可用以分別佔用記憶體控制器110內隨機存取記憶體116中不同大小的表區域310R與311R以增加整體效能,其中對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R係小於對應於混合主動區域320之暫時實體至邏輯位址映射表310的表區域310R。舉例來說,當第一資料屬於冷資料時,記憶體裝置100(例如記憶體控制器110)可直接地利用混合主動區塊320來接收並儲存第一資料而無需進行尋找操作,以最大化寫入速度以及寫入量。當第一資料屬於熱資料時,記憶體裝置100(例如記憶體控制器110)可進行步驟S13與S14的操作來達到資料的正確性,其中由於熱資料的內容(例如資料量)應少於冷資料的內容(例如資料量)並且熱資料之第一部分的內容(例如資料量)應遠小於混合資料(例如冷資料以及熱資料的其它部分)的內容(例如資料量),因此可大幅度地減少尋找操作的數量。此外,當第一資料屬於熱資料並且為具有大資料量的連續資料時,記憶體裝置100(例如記憶體控制器110)可直接地利用混合主動區塊320來接收並儲存第一資料而無需進行尋找操作,以最大化寫入速度以及寫入量,其中由於僅具有熱資料,因此此時熱資料不會造成任一資料分割(data fragmentation)。
為了更好的理解,該方法可藉由第5圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第5圖所示之工作流程中增加、刪除或修改,舉例來說,在該多個主動區塊(例如混合主動區塊320以及熱主動區塊321)之中任一個主動區塊被完整地編程之後,記憶體裝置100(例如記憶體控制器110)可關閉(close)上述任一個主動區塊來使得上述任一個主動區塊變成非主動區塊,並擇取一空白區塊(例如一抹除後區塊)來作為該多個主動區塊之中上述任一個主動區塊的替代區塊,以供進行對應於上述任一個主動區塊的後續資料接收,此外,上述的後續處理可包含有進行一垃圾回收程序來將非主動區塊中所有資料之中的有效資料寫入至另一個空白區塊(例如另一個抹除後區塊)中,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,在第一資料屬於熱資料並被判斷為一小資料塊(data chunk)而不是連續資料的情況下可進入步驟S13,並且執行步驟S13的次數可能非常小,因此,記憶體裝置100(例如記憶體控制器110)在大部分時間可以極高性能來操作,並且多次執行步驟S13並不會顯著地降低整體效能。由於在先進入步驟S13與S14的情況下可能進入步驟S15,因此,在步驟S15中,熱主動區塊321的資料(例如利用熱主動區塊321所接收並儲存的所有資料)應已進行過步驟S14的檢查操作,尤其是,記憶體裝置100(例如記憶體控制器110)應已在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中尋找過熱主動區塊321之資料的多個邏輯位址(例如多個邏輯區塊位址),並且沒有在對應於混合主動區塊320的暫時實體至邏輯位址映射表310中尋找到熱主動區塊321之資料的多個邏輯位址(例如多個邏輯區塊位址)之中的任一邏輯位址(例如任一邏輯區塊位址),以保證裝置端所接收到的資料正確性,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第6A圖為依據本發明一實施例之第5圖所示之工作流程的某些實施細節。舉例來說,第5圖所示之工作流程中的步驟S18可包含有第6A圖所示之工作流程中的多個子步驟(例如步驟S21~S25),其中可以先進行包含有步驟S21與S22的第一迴圈中的一個或多個操作,接著再進行包含有步驟S23~S25的第二迴圈中的一個或多個操作,但是本發明不以此為限。根據某些實施例,步驟S21與S23可被整合至一相同步驟,其中相關的部分工作流程可對應地變化。
在步驟S21中,記憶體裝置100(例如記憶體控制器110)可判斷對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R是否為滿(full;為簡潔起見,標記為“熱資料表區域為滿?”),如果是(例如暫時實體至邏輯位址映射表311的表區域311R為滿),則進入步驟S22;如果否(例如暫時實體至邏輯位址映射表311的表區域311R不為滿),則進入步驟S23。
在步驟S22中,記憶體裝置100(例如記憶體控制器110)可將實體至邏輯表項目(例如暫時實體至邏輯位址映射表311的所有實體至邏輯表項目)以及相對應的邏輯至實體表項目(例如供熱主動區塊321使用之對應於實體至邏輯表項目的邏輯至實體表項目)更新至非揮發性記憶體120(例如其系統區域)內相關表區塊(例如分別用以儲存實體至邏輯位址映射表T21與全域邏輯至實體位址映射表120T的表區塊)中,尤其是,根據目前儲存於暫時實體至邏輯位址映射表311中的實體至邏輯表項目來更新實體至邏輯位址映射表T21以及全域邏輯至實體位址映射表120T。
舉例來說,記憶體控制器110可將目前儲存於暫時實體至邏輯位址映射表311中的實體至邏輯表項目複製至實體至邏輯位址映射表T21中,當偵測到實體至邏輯位址映射表T21中任一個舊實體至邏輯表項目對應於(例如具有)與自暫時實體至邏輯位址映射表311取得之任一個新實體至邏輯表項目的邏輯位址相同的一邏輯位址時,記憶體控制器110可標記(mark)上述實體至邏輯位址映射表T21中的該任一個舊實體至邏輯表項目以作為一無效實體至邏輯表項目。此外,暫時實體至邏輯位址映射表311中實體至邏輯表項目的位址映射關係以及全域邏輯至實體位址映射表120T中相對應之邏輯至實體表項目的位址映射關係應相互一致並不互相矛盾,其中暫時實體至邏輯位址映射表311中實體至邏輯表項目所指示的實體至邏輯位址映射關係以及全域邏輯至實體位址映射表120T中相對應之邏輯至實體表項目所指示的邏輯至實體位址映射關係應分別為另一方的逆(reverse)位址映射關係。基於該逆位址映射關係,記憶體控制器110可根據暫時實體至邏輯位址映射表311中的實體至邏輯表項目來產生相對應的邏輯至實體表項目,並將相對應的邏輯至實體表項目寫入至全域邏輯至實體位址映射表120T中,當偵測到全域邏輯至實體位址映射表120T中任一個舊邏輯至實體表項目對應於(例如具有)與任一個新邏輯至實體表項目(例如根據暫時實體至邏輯位址映射表311中某個實體至邏輯表項目所產生的新邏輯至實體表項目)之邏輯位址相同的一邏輯位址時,記憶體控制器110可標記該舊邏輯至實體表項目以作為一無效邏輯至實體表項目。
在步驟S23中,記憶體裝置100(例如記憶體控制器110)可判斷對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R是否為滿(為簡潔起見,標記為“混合資料表區域為滿?”),如果是(例如暫時實體至邏輯位址映射表310的表區域310R為滿),則進入步驟S24;如果否(例如暫時實體至邏輯位址映射表310的表區域310R不為滿),則第6A圖所示之工作流程結束。
在步驟S24中,記憶體裝置100(例如記憶體控制器110)可將實體至邏輯表項目(例如暫時實體至邏輯位址映射表311的所有實體至邏輯表項目)以及相對應的邏輯至實體表項目(例如供熱主動區塊321使用之對應於實體至邏輯表項目的邏輯至實體表項目)更新至非揮發性記憶體120(例如其系統區域)內相關表區塊(例如分別用以儲存實體至邏輯位址映射表T21與全域邏輯至實體位址映射表120T的表區塊)中,尤其是,根據目前儲存於暫時實體至邏輯位址映射表311中的實體至邏輯表項目來更新實體至邏輯位址映射表T21以及全域邏輯至實體位址映射表120T。舉例來說,步驟S24的操作可類似於或相同於步驟S22的操作。
在步驟S25中,記憶體裝置100(例如記憶體控制器110)可將實體至邏輯表項目(例如暫時實體至邏輯位址映射表310的所有實體至邏輯表項目)以及相對應的邏輯至實體表項目(例如供混合主動區塊320使用之對應於實體至邏輯表項目的邏輯至實體表項目)更新至非揮發性記憶體120(例如其系統區域)內相關表區塊(例如分別用以儲存實體至邏輯位址映射表T20與全域邏輯至實體位址映射表120T的表區塊)中,尤其是,根據目前儲存於暫時實體至邏輯位址映射表310中的實體至邏輯表項目來更新實體至邏輯位址映射表T20以及全域邏輯至實體位址映射表120T。
舉例來說,記憶體控制器110可將目前儲存於暫時實體至邏輯位址映射表310中的實體至邏輯表項目複製至實體至邏輯位址映射表T20中,當偵測到實體至邏輯位址映射表T20中任一個舊實體至邏輯表項目對應於(例如具有)與自暫時實體至邏輯位址映射表310取得之任一個新實體至邏輯表項目的邏輯位址相同的一邏輯位址時,記憶體控制器110可標記上述實體至邏輯位址映射表T20中的該任一個舊實體至邏輯表項目以作為一無效實體至邏輯表項目。此外,暫時實體至邏輯位址映射表310中實體至邏輯表項目的位址映射關係以及全域邏輯至實體位址映射表120T中相對應之邏輯至實體表項目的位址映射關係應相互一致並不互相矛盾,其中暫時實體至邏輯位址映射表310中實體至邏輯表項目所指示的實體至邏輯位址映射關係以及全域邏輯至實體位址映射表120T中相對應之邏輯至實體表項目所指示的邏輯至實體位址映射關係應分別為另一方的逆位址映射關係。基於該逆位址映射關係,記憶體控制器110可根據暫時實體至邏輯位址映射表310中的實體至邏輯表項目來產生相對應的邏輯至實體表項目,並將相對應的邏輯至實體表項目寫入至全域邏輯至實體位址映射表120T中,當偵測到全域邏輯至實體位址映射表120T中任一個舊邏輯至實體表項目對應於(例如具有)與任一個新邏輯至實體表項目(例如根據暫時實體至邏輯位址映射表310中某個實體至邏輯表項目所產生的新邏輯至實體表項目)之邏輯位址相同的一邏輯位址時,記憶體控制器110可標記該舊邏輯至實體表項目以作為一無效邏輯至實體表項目。
為了更好的理解,該方法可藉由第6A圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第6A圖所示之工作流程中增加、刪除或修改,舉例來說,可以交換執行包含有步驟S21與S22的第一迴圈以及執行包含有步驟S23~S25的第二迴圈的順序,因此,可以先進行包含有步驟S23~S25之第二迴圈中的一個或多個操作,接著再進行包含有步驟S21與S22之第一迴圈中的一個或多個操作,又例如,記憶體控制器110可選擇性地執行包含有步驟S21與S22的第一迴圈或包含有步驟S23~S25之第二迴圈,取決於該擇取主動區塊是否為熱主動區塊321或混合主動區塊320,因此,當該擇取主動區塊為熱主動區塊321時可進行包含有步驟S21與S22之第一迴圈中的一個或多個操作,並且當該擇取主動區塊為混合主動區塊320時可進行包含有步驟S21與S22之第一迴圈中的一個或多個操作,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
針對第6A圖所示之工作流程的某些實施細節可以進一步地描述如下,根據某些實施例,當需要時,記憶體裝置100(例如記憶體控制器110)可根據暫時實體至邏輯位址映射表310與311來分別更新實體至邏輯位址映射表T20與T21以及全域邏輯至實體位址映射表120T,舉例來說,記憶體裝置100(例如記憶體控制器110)可進行步驟S22或步驟S24的操作來根據暫時實體至邏輯位址映射表311更新實體至邏輯位址映射表T21以及全域邏輯至實體位址映射表120T,又例如,記憶體裝置100(例如記憶體控制器110)可進行步驟S25的操作來根據暫時實體至邏輯位址映射表310更新實體至邏輯位址映射表T20以及全域邏輯至實體位址映射表120T,要注意的是,記憶體裝置100(例如記憶體控制器110)應已搜尋過對應於混合主動區塊320之暫時實體至邏輯位址映射表310中的熱主動區塊321之資料(例如利用熱主動區塊321所接收並儲存的所有資料)的邏輯位址(例如邏輯區塊位址),如自步驟S14開始、通過步驟S16並達到步驟S17的平行工作流程所示,倘若在暫時實體至邏輯位址映射表310中具有攜帶相同邏輯位址(例如相同邏輯區塊位址)的任一個舊實體至邏輯表項目的話,則記憶體裝置100(例如記憶體控制器110)可利用混合主動區塊320來接收第一資料,並將攜帶該相同邏輯位址(例如該相同邏輯區塊位址)的新實體至邏輯表項目寫入至暫時實體至邏輯位址映射表310中以作為上述暫時實體至邏輯位址映射表310中攜帶相同邏輯位址(例如相同邏輯區塊位址)的該任一個舊實體至邏輯表項目的代替,以指示在該相同邏輯位址(例如該相同邏輯區塊位址)之資料的最新實體至邏輯位址映射表關係,其中在混合主動區塊320中的所有資料應為最新資料。因此,在包含有步驟S21與S22的第一迴圈中,在執行步驟S22之前記憶體裝置100(例如記憶體控制器110)不需進行類似於或相同於步驟S25的操作。
此外,記憶體裝置100(例如記憶體控制器110)可防止進行平衡實體至邏輯表搜尋(例如搜尋暫時實體至邏輯位址映射表310與311中的邏輯位址(例如邏輯區塊位址)),尤其是,可防止搜尋對應於熱主動區塊321之暫時實體至邏輯位址映射表311中混合主動區塊320之資料(例如利用混合主動區塊320所接收並儲存的所有資料)的邏輯位址(例如邏輯區塊位址),以節省時間並因此增加整體效能。為了更好的理解,假設記憶體裝置100(例如記憶體控制器110)嘗試搜尋對應於熱主動區塊321之暫時實體至邏輯位址映射表311中混合主動區塊320之資料的邏輯位址(例如邏輯區塊位址),由於混合主動區塊320之資料的資料量可能增加而變得非常大,因此對應於混合主動區塊320之暫時實體至邏輯位址映射表310中邏輯位址的邏輯位址計數(例如邏輯區塊位址的邏輯區塊位址計數)可能會相對應地增加,並且針對該些邏輯位址進行相關搜尋操作的次數可能也會相對應地增加,其會降低整體效能,為了保證資料的正確性,記憶體裝置100(例如記憶體控制器110)可進行非平衡表更新(例如非平衡實體至邏輯表更新以及非平衡邏輯至實體表更新;諸如先根據暫時實體至邏輯位址映射表311來更新實體至邏輯位址映射表T21以及全域邏輯至實體位址映射表120T,並接著根據暫時實體至邏輯位址映射表310來選擇性地更新實體至邏輯位址映射表T20以及全域邏輯至實體位址映射表120T,取決於不同情況),而不是進行上述平衡實體至邏輯表搜尋,尤其是,在包含有步驟S23~S25的第二迴圈中先進行步驟S24的操作來根據暫時實體至邏輯位址映射表311更新實體至邏輯位址映射表T21以及全域邏輯至實體位址映射表120T,並接著進行步驟S25的操作來根據暫時實體至邏輯位址映射表310更新實體至邏輯位址映射表T20以及全域邏輯至實體位址映射表120T,因此,倘若在暫時實體至邏輯位址映射表311中具有攜帶有相同邏輯位址(例如相同邏輯區塊位址)的任一個舊實體至邏輯表項目的話,則記憶體裝置100(例如記憶體控制器110)可利用暫時實體至邏輯位址映射表310中攜帶有該相同邏輯位址(例如該相同邏輯區塊位址)的新實體至邏輯表項目來作為暫時實體至邏輯位址映射表311中上述攜帶有該相同邏輯位址(例如該相同邏輯區塊位址)的該任一個舊實體至邏輯表項目的代替,以指示在該相同邏輯位址(例如該相同邏輯區塊位址)之資料的最新實體至邏輯位址映射關係,因此,記憶體裝置100(例如記憶體控制器110)可進行非平衡表更新(例如非平衡實體至邏輯表更新以及非平衡邏輯至實體表更新)而不是進行上述平衡實體至邏輯表搜尋,以在維持裝置端所接收到的資料正確性的同時增加整體效能,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,暫時實體至邏輯位址映射表310(例如其表區域310R)可能非常大或具有大尺寸(例如16千位元組(kilobyte, KB)或32千位元組的大小),並且對應於混合主動區塊320之暫時實體至邏輯位址映射表310中任一個實體至邏輯表項目可具有4位元組(byte, B)的大小,以供指示混合主動區塊320中4千位元組資料的實體至邏輯位址映射關係,此外,暫時實體至邏輯位址映射表311(例如其表區域311R)可能非常小或具有小尺寸(例如1千位元組或2千位元組的大小),並且對應於熱主動區塊321之暫時實體至邏輯位址映射表311中任一個實體至邏輯表項目可能具有4位元組的大小,以供指示熱主動區塊321中4千位元組資料的實體至邏輯位址映射關係,舉例來說,在包含有步驟S21與S22的第一迴圈中,步驟S22的操作可能需要僅對應於1千位元組或2千位元組大小的實體至邏輯表項目,在一第一案例中,記憶體裝置100(例如記憶體控制器110)在步驟S15中可開始利用熱主動區塊321來接收第一資料(屬於熱資料、歸類於步驟S12中所判斷的非連續資料並且另歸類於步驟S14中所判斷的不具有在混合主動區塊320中相同邏輯區塊位址的資料之先前版本的任一資料),並在步驟S17中將上述至少一實體至邏輯表項目記錄至對應於熱主動區塊321的暫時邏輯至實體位址映射表311中,以使得暫時邏輯至實體位址映射表311變滿(full),以及進行步驟S22的操作不會顯著地減少整體效能。又例如,在包含有步驟S23~S25的第二迴圈中,步驟S25的操作可能需要處理對應於16千位元組或32千位元組大小的實體至邏輯表項目,並且步驟S24的操作可能需要處理僅對應於1千位元組或2千位元組大小的實體至邏輯表項目,其中在包含有步驟S23~S25的第二迴圈中於步驟S25之前增加或插入步驟S24僅會增加針對處理實體至邏輯表項目的1千位元組或2千位元組的負擔(overhead),在一第二案例中,記憶體裝置100(例如記憶體控制器110)在步驟S16中可開始利用混合主動區塊320來接收第一資料(屬於冷資料的任一資料、屬於熱資料並歸類於步驟S12中所判斷的連續資料的任一資料以及屬於熱資料、歸類於步驟S12中所判斷的非連續資料並進一步地歸類於步驟S14所判斷的具有在混合主動區塊320中相同邏輯區塊位址的資料之先前版本的任一資料),並在步驟S17中將上述至少一實體至邏輯表項目記錄至對應於混合主動區塊320之暫時實體至邏輯位址映射表310中,以使得暫時實體至邏輯位址映射表310變滿(full),以及進行步驟S24與S25的操作不會顯著地降低整體效能。由於第一資料的資料量可能相當大並遠大於16千位元組或32千位元組的大小,因此步驟S24與S25的處理時間可能相對地較短(例如步驟S24與S25的操作可在後台中進行),此外,對應於混合主動區塊320之暫時實體至邏輯位址映射表310的大小對於記憶體裝置100(例如記憶體控制器110)來說足夠大而可大幅地減少第二案例的發生次數,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,由於混合主動區塊320中的所有資料應皆為最新資料,並且來自主機裝置50的大部分資料應被記憶體裝置100(例如記憶體控制器110)藉由混合主動區塊320所接收,因此根據該方法所操作的記憶體裝置100(例如記憶體控制器110)可大幅地減少垃圾回收程序的垃圾回收工作量,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第6B圖為依據本發明另一實施例之第5圖所示之工作流程的某些實施細節。舉例來說,第5圖所示之工作流程中的步驟S18可包含有多個子步驟(例如第6B圖所示之工作流程中的步驟S20、S22、S24以及S25),其中第6B圖所示之步驟S22、S24以及S25的操作與第6A圖所示之步驟S22、S24以及S25的操作相同。
在步驟S20中,記憶體裝置100(例如記憶體控制器110)可判斷對應於熱主動區塊321之暫時實體至邏輯位址映射表311與對應於混合主動區塊320之暫時實體至邏輯位址映射表310之中任一個暫時實體至邏輯位址映射表的表區域是否為滿(為簡潔起見,標記為“任一個表區域為滿?”),倘若對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R為滿的話(為簡潔起見,標記為“熱資料表區域為滿”),則進入步驟S22;倘若對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R為滿的話(為簡潔起見,標記為“混合資料表區域為滿”),則進入步驟S22;倘若對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R以及對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R皆不為滿的話,則第6B圖所示之工作流程結束。為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
第7圖為依據本發明另一實施例之該方法的工作流程圖。
在步驟S30中,記憶體裝置100(例如記憶體控制器110)可透過記憶體控制器110的傳輸介面電路118來自主機裝置50接收主機命令,分別根據主機命令之中一組第一命令以及一組第二命令來利用複數個區塊之中一第一主動區塊(例如熱主動區塊321)以及一第二主動區塊(例如混合主動區塊320)來接收一組第一資料以及一組第二資料,並且更新對應於第一主動區塊的一第一暫時實體至邏輯位址映射表以及對應於第二主動區塊的一第二暫時實體至邏輯位址映射表(例如對應於熱主動區塊321的暫時實體至邏輯位址映射表311以及對應於混合主動區塊320的暫時實體至邏輯位址映射表310),其中該組第一命令以及該組第二命令可分別指示要求將該組第一資料以及該組第二資料寫入至記憶體裝置100中。因此,該組第一資料可被寫入至第一主動區塊(例如熱主動區塊321)中,而該組第二資料可被寫入至第二主動區塊(例如混合主動區塊320)中,舉例來說,該組第一資料與該組第二資料之中的任一筆資料可被歸類以屬於熱資料或冷資料,並且熱資料與冷資料分別代表頻繁存取資料與非頻繁存取資料。
在步驟S31中,記憶體裝置100(例如記憶體控制器110)可判斷第一暫時實體至邏輯位址映射表與第二暫時實體至邏輯位址映射表之中的任一個暫時實體至邏輯位址映射表(例如對應於熱主動區塊321的暫時實體至邏輯位址映射表311與對應於混合主動區塊320的暫時實體至邏輯位址映射表310之中的任一個暫時實體至邏輯位址映射表)的表區域是否為滿(為簡潔起見,標記為“任一個表區域為滿?”),舉例來說,倘若對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R為滿的話(為簡潔起見,標記為“熱資料表區域為滿”),則進入步驟S32;倘若對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R為滿的話(為簡潔起見,標記為“混合資料表區域為滿”),則進入步驟S34;以及倘若對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R與對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R皆不為滿的話,則進入步驟S36。
因應上述第一暫時實體至邏輯位址映射表與第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311與310)之中的任一個暫時實體至邏輯位址映射表的表區域為滿,記憶體裝置100(例如記憶體控制器110)可根據第一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311)來更新非揮發性記憶體120中的一第一實體至邏輯位址映射表(例如實體至邏輯位址映射表T21),並根據第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310)來選擇性地更新非揮發性記憶體120中的一第二實體至邏輯位址映射表(例如實體至邏輯位址映射表T20),以供進行上述後處理(例如垃圾回收程序),第一暫時實體至邏輯位址映射表與第二暫時實體至邏輯位址映射表可用以分別佔用記憶體控制器110內具有一第一大小的一第一表區域(例如暫時實體至邏輯位址映射表311的表區域311R)與具有一第二大小的一第二表區域(例如暫時實體至邏輯位址映射表310的表區域310R),其中第一表區域通常小於第二表區域。
根據上述任一個暫時實體至邏輯位址映射表是第一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311)還是第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310),記憶體裝置100(例如記憶體控制器110)可判斷是否省略根據第二暫時實體至邏輯位址映射表來更新第二實體至邏輯位址映射表(例如實體至邏輯位址映射表T20)以及上述至少一邏輯至實體位址映射表(例如全域邏輯至實體位址映射表120T),在記憶體控制器110的控制下,倘若上述任一個暫時實體至邏輯位址映射表是第一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311)的話,則省略根據第二暫時實體至邏輯位址映射表來更新第二實體至邏輯位址映射表以及上述至少一邏輯至實體位址映射表;以及倘若上述任一個暫時實體至邏輯位址映射表是第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310)的話,則不省略根據第二暫時實體至邏輯位址映射表來更新第二實體至邏輯位址映射表以及上述至少一邏輯至實體位址映射表。
在步驟S32中,當對應於熱主動區塊321之暫時實體至邏輯位址映射表311的表區域311R為滿時(為簡潔起見,標記為“熱資料表區域為滿”),記憶體裝置100(例如記憶體控制器110)可根據第一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311)來更新非揮發性記憶體120中的第一實體至邏輯位址映射表(例如實體至邏輯位址映射表T21)以及上述至少一邏輯至實體位址映射表(例如全域邏輯至實體位址映射表120T),而無需更新第二實體至邏輯位址映射表(例如實體至邏輯位址映射表T20;如自步驟S32至步驟S36的部分工作流程所示),以供進行上述後續處理(例如垃圾回收程序以及資料讀取)。
在步驟S34中,當對應於混合主動區塊320之暫時實體至邏輯位址映射表310的表區域310R為滿時(為簡潔起見,標記為“混合資料表區域為滿”),記憶體裝置100(例如記憶體控制器110)可根據第一暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311)來更新非揮發性記憶體120中的第一實體至邏輯位址映射表(例如實體至邏輯位址映射表T21)以及上述至少一邏輯至實體位址映射表(例如全域邏輯至實體位址映射表120T)。
在步驟S35中,在更新第一實體至邏輯位址映射表(實體至邏輯位址映射表T21)以及上述至少一邏輯至實體位址映射表(例如全域邏輯至實體位址映射表120T)之後(如步驟S34所示),記憶體裝置100(例如記憶體控制器110)可根據第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310)來更新非揮發性記憶體120中的第二實體至邏輯位址映射表(例如實體至邏輯位址映射表T20)以及上述至少一邏輯至實體位址映射表(例如全域邏輯至實體位址映射表120T),以供進行上述後續處理(例如垃圾回收程序以及資料讀取)。
在步驟S36中,記憶體裝置100(例如記憶體控制器110)可判斷是否進行下一個操作,舉例來說,根據非揮發性記憶體120的資料區域內是否具有足夠的儲存空間來判斷是否進行下一個操作,如果是(例如非揮發性記憶體120的資料區域內具有足夠的儲存空間),則進入步驟S30;如果否(例如非揮發性記憶體120的資料區域內不具有足夠的儲存空間),則第7圖所示之工作流程結束。
為了更好的理解,該方法可藉由7圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第7圖所示之工作流程中增加、刪除或修改,舉例來說,步驟S30的操作可包含有第5圖所示之工作流程中自步驟S10至步驟S17的部分工作流程的操作之中的至少一部分的操作(例如一部分的操作或全部的操作),並可視為執行第5圖所示之工作流程的多個迭代中步驟S10、S11以及一個或多個後續步驟(例如步驟S12、步驟S13與S14、步驟S15及/或步驟S16)並接著執行步驟S17的結果,尤其是,第5圖所示之工作流程的多個迭代中步驟S10的命令{CMD}可包含有至少一第一命令(例如一個或多個第一命令)以及至少一第二命令(例如一個或多個第二命令),其可分別作為步驟S30中該組第一命令以及該組第二命令的範例。在執行第5圖所示之工作流程的多個迭代中步驟S10、S11等等之後,記憶體裝置100(例如記憶體控制器110)可分別根據該組第一命令(例如上述至少一第一命令)以及該組第二命令(例如上述至少一第二命令)來利用第一主動區塊(例如熱主動區塊321)與第二主動區塊(例如混合主動區塊320)接收該組第一資料與該組第二資料,並且可相對應地更新第一暫時實體至邏輯位址映射表以及第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表311以及310),此外,步驟S32、S34與S35的操作可分別包含有步驟S22、S24與S25的操作,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,記憶體裝置100(例如記憶體控制器110)可根據上述至少一預定規則來決定多個主動區塊(例如混合主動區塊320以及熱主動區塊321)之中的擇取主動區塊,基於上述至少一預定規則之中的某個預定規則,當第一資料屬於冷資料時,記憶體裝置100(例如記憶體控制器110)係用以利用混合主動區塊320來接收並儲存第一資料,其中記憶體控制器110可根據第一資訊(例如第一資料長度及/或第一指示)來判斷第一資料是否屬於冷資料。此外,根據上述至少一預定規則來決定多個主動區塊之中的擇取主動區塊的操作可包含有選擇性地對第一資訊(例如上述至少一第一邏輯位址、第一資料長度及/或第一指示)進行至少一檢查操作(例如一個或多個檢查操作)來產生至少一判斷結果(例如一個或多個判斷結果),以供決定多個主動區塊之中的擇取主動區塊,舉例來說,上述至少一檢查操作可包含有第一檢查操作(例如步驟S11的操作),並另包含有上述至少一其它檢查操作,諸如第二檢查操作(例如步驟S12的操作)以及第三檢查操作(例如步驟S14的操作),其中上述至少一判斷結果可包含有第一判斷結果,並另包含有上述至少一其它判斷結果,諸如第二判斷結果以及第三判斷結果,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,該組第一命令與該組第二命令之中的任一個命令(例如命令CMD)可攜帶有與任一筆待寫入資料(例如第一資料)相關的第一資訊,尤其是,在第5圖之實施例的相關操作中所提及的第一資料可作為上述任一筆資料的範例。與上述任一筆資料(例如第一資料)相關的第一資訊可包含有至少一第一邏輯位址以供指示至少一第一邏輯位址區域,其中上述任一個命令可指示要求將上述任一筆資料(例如第一資料)寫入至該至少一第一邏輯位址區域。此外,記憶體裝置100(例如記憶體控制器110)可對上述任一筆資料(例如第一資料)進行上述至少一檢查操作以產生上述至少一判斷結果,以供根據上述至少一判斷結果決定出擇取主動區塊來接收第一主動區塊(例如熱主動區塊321)與第二主動區塊(例如混合主動區塊320)之中的上述任一筆資料,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,上述任一筆資料(例如第一資料)可被歸類成步驟S10中的熱資料,舉例來說,可選擇性地對與上述任一筆資料(例如第一資料)相關的第一資訊進行上述至少一檢查操作之中的上述至少一其它檢查操作來產生上述至少一判斷結果之中的上述至少一其它判斷結果,以供決定出第一主動區塊與第二主動區塊之中的擇取主動區塊,其中上述至少一其它判斷結果可指示上述被歸類成熱資料的任一筆資料(例如第一資料)是屬於熱資料的第一部分還是熱資料的其它部分,尤其是,倘若上述至少一其它判斷結果指示上述被歸類成熱資料的任一筆資料(例如第一資料)是屬於熱資料的其它部分的話,則在步驟S16中記憶體裝置100(例如記憶體控制器110)可利用混合主動區塊320(而不是熱主動區塊321)來接收上述任一筆資料;以及倘若上述至少一其它判斷結果指示上述被歸類成熱資料的任一筆資料(例如第一資料)是屬於熱資料的第一部分的話,則在步驟S15中記憶體裝置100(例如記憶體控制器110)可利用熱主動區塊321(而不是混合主動區塊320)來接收上述任一筆資料。舉例來說,上述至少一其它判斷結果可包含有第二檢查操作(例如步驟S12的操作)以及第三檢查操作(例如步驟S14的操作),其中第二判斷結果可指示上述任一筆資料(例如第一資料)是否為連續資料,而第三檢查操作可指示是否在第二暫時實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表310)中尋找到上述至少一第一邏輯位址之中的相同邏輯位址,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主機裝置
52:處理器
54:電源供應電路
58, 118:傳輸介面電路
100:記憶體裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:隨機存取記憶體
116T:暫時邏輯至實體位址映射表
118C:通用快閃儲存控制器
118U:標準化通訊協定電路
118M:M實體層電路
120:非揮發性記憶體
120T:全域邏輯至實體位址映射表
122-1~122-N:非揮發性記憶體元件
T10, T11, 310, 311:暫時實體至邏輯位址映射表
T20, T21:實體至邏輯位址映射表
210, 211:暫時實體至邏輯位址映射表
210R, 211R, 310R, 311R:表區域
220:冷主動區塊
221, 321:熱主動區塊
320:混合主動區塊
S10~S25, S30~S36:步驟
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2圖為平衡資料分割與接收控制方案。
第3圖為依據本發明一實施例之借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理之方法的非平衡資料分割與接收控制方案。
第4圖為依據本發明另一實施例之非平衡資料分割與接收控制方案。
第5圖為依據本發明一實施例之該方法的工作流程圖。
第6A圖為依據本發明一實施例之第5圖所示之工作流程的某些實施細節。
第6B圖為依據本發明另一實施例之第5圖所示之工作流程的某些實施細節。
第7圖為依據本發明另一實施例之該方法的工作流程圖。
S30~S36:步驟
Claims (17)
- 一種借助非平衡表更新來進行一預定通訊架構中一記憶體裝置的資料存取管理的方法,該方法係應用於該記憶體裝置的一記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該方法包含有: 利用該記憶體控制器來透過該記憶體控制器的一傳輸介面電路自一主機裝置接收複數個主機命令,分別根據該複數個主機命令之中的一組第一命令以及一組第二命令來利用一第一主動區塊以及一第二主動區塊接收一組第一資料以及一組第二資料,以及更新對應於該第一主動區塊的一第一暫時實體至邏輯位址映射表以及對應於該第二主動區塊的一第二暫時實體至邏輯位址映射表,其中該組第一命令以及該組第二命令分別指示要求將該組第一資料以及該組第二資料寫入至該記憶體裝置中;以及 因應該第一暫時實體至邏輯位址映射表以及該第二暫時實體至邏輯位址映射表之中任一個暫時實體至邏輯位址映射表的一表區域為滿,根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的一第一實體至邏輯位址映射表並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該非揮發性記憶體中的一第二實體至邏輯位址映射表,以供進行後續處理,其中該第一暫時實體至邏輯位址映射表以及該第二實體至邏輯位址映射表係分別用以佔用該記憶體控制器內一隨機存取記憶體中具有一第一大小的一第一表區域以及具有一第二大小的一第二表區域。
- 如申請專利範圍第1項所述之方法,其中該組第一資料以及該組第二資料之中的任一筆資料被歸類以屬於熱資料或冷資料,並且該熱資料與該冷資料分別代表頻繁存取資料以及非頻繁存取資料;以及該第二主動區塊與該第一主動區塊分別代表一混合主動區塊與一熱主動區塊,以供分別接收混合資料以及該熱資料的一第一部分,其中該混合資料包含有該冷資料以及該熱資料的另一部分。
- 如申請專利範圍第1項所述之方法,其中是否省略根據該第二暫時實體至邏輯位址映射表來更新該第二實體至邏輯位址映射表係根據該任一個暫時實體至邏輯位址映射表是該第一暫時實體至邏輯位址映射表還是該第二暫時實體至邏輯位址映射表來決定。
- 如申請專利範圍第3項所述之方法,其中: 倘若該任一個暫時實體至邏輯位址映射表是該第一暫時實體至邏輯位址映射表的話,則省略根據該第二暫時實體至邏輯位址映射表來更新該第二實體至邏輯位址映射表;以及 倘若該任一個暫時實體至邏輯位址映射表是該第二暫時實體至邏輯位址映射表的話,則不省略根據該第二暫時實體至邏輯位址映射表來更新該第二實體至邏輯位址映射表。
- 如申請專利範圍第3項所述之方法,其中根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第一實體至邏輯位址映射表並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該非揮發性記憶體中的該第二實體至邏輯位址映射表,以供進行該後續處理的步驟另包含有: 因應該第一暫時實體至邏輯位址映射表的該第一表區域為滿,根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第一實體至邏輯位址映射表而無需更新該第二實體至邏輯位址映射表,以供進行該後續處理。
- 如申請專利範圍第3項所述之方法,其中根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第一實體至邏輯位址映射表並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該非揮發性記憶體中的該第二實體至邏輯位址映射表,以供進行該後續處理的步驟另包含有: 因應該第二暫時實體至邏輯位址映射表的該第二表區域為滿,根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第一實體至邏輯位址映射表,並接著根據該第二暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第二實體至邏輯位址映射表,以供進行該後續處理。
- 如申請專利範圍第1項所述之方法,其中根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的該第一實體至邏輯位址映射表並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該非揮發性記憶體中的該第二實體至邏輯位址映射表,以供進行該後續處理的步驟另包含有: 根據該第一暫時實體至邏輯位址映射表來更新該第一實體至邏輯位址映射表以及至少一邏輯至實體位址映射表,並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該第二實體至邏輯位址映射表以及該至少一邏輯至實體位址映射表,以供進行該後續處理。
- 如申請專利範圍第1項所述之方法,其中該組第一命令以及該組第二命令之中的任一個命令攜帶有與任一筆待寫入資料相關的第一資訊,該第一資訊包含有至少一第一邏輯位址以供指示至少一第一邏輯位址區域,並且該任一個命令指示要求將該任一筆資料寫入至該至少一第一邏輯位址區域中;以及該方法另包含有: 對該第一資訊進行至少一檢查操作來產生至少一判斷結果,以供根據該至少一判斷結果決定出一擇取主動區塊來接收該第一主動區塊以及該第二主動區塊之中的任一筆資料,其中對該第一資訊進行該至少一檢查操作之中的一第一檢查操作來產生該至少一判斷結果之中的一第一判斷結果,以供指示該任一筆資料屬於熱資料還是冷資料,該熱資料與該冷資料分別代表頻繁存取資料與非頻繁存取資料,該第二主動區塊與該第一主動區塊分別代表一混合主動區塊與一熱主動區塊以供分別接收混合資料以及該熱資料的一第一部分,以及該混合資料包含有該冷資料以及該熱資料的另一部分。
- 如申請專利範圍第8項所述之方法,其中該任一筆資料被歸類為該熱資料;選擇性地對該第一資訊進行該至少一檢查操作之中的至少一其它檢查操作來產生該至少一判斷結果之中的至少一其它判斷結果,以供決定該第一主動區塊與該第二主動區塊之中的該擇取主動區塊,以及該至少一其它判斷結果指示被歸類於該熱資料的該任一筆資料是屬於該熱資料的該第一部分還是該熱資料的該另一部分。
- 如申請專利範圍第9項所述之方法,其中倘若該至少一其它判斷結果指示被歸類於該熱資料的該任一筆資料是屬於該熱資料的該另一部分的話,則利用該混合主動區塊來接收該任一筆資料,而不是利用該熱主動區塊來接收該任一筆資料;以及倘若該至少一其它判斷結果指示被歸類於該熱資料的該任一筆資料是屬於該熱資料的該第一部分的話,則利用該熱主動區塊來接收該任一筆資料,而不是利用該混合主動區塊來接收該任一筆資料。
- 如申請專利範圍第9項所述之方法,其中該至少一其它檢查操作包含有一第二檢查操作,以及該至少一其它判斷結果包含有進行該第二檢查操作而取得的一第二判斷結果,其中該第二判斷結果指示該任一筆資料是否為連續資料。
- 如申請專利範圍第11項所述之方法,其中該至少一其它檢查操作另包含有一第三檢查操作,以及該至少一其它判斷結果另包含有進行該第三檢查操作而取得的一第三判斷結果,其中該第三判斷結果指示是否在該第二暫時實體至邏輯位址映射表中尋找到該至少一第一邏輯位址之中的一相同邏輯位址。
- 如申請專利範圍第1項所述之方法,其中在該第一主動區塊與該第二主動區塊之中的任一個主動區塊被完整地編程之後,該任一個主動區塊成為一非主動區塊;以及該後續處理包含有進行一垃圾回收程序來將該非主動區塊中所有資料之中的有效資料寫入至一空白區塊中。
- 如申請專利範圍第1項所述之方法,其中該第一表區域係小於該第二表區域。
- 一種記憶體裝置的記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該記憶體控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該記憶體控制器,以允許該主機裝置透過該記憶體控制器存取該非揮發性記憶體,其中該處理電路係用以進行借助非平衡表更新來進行一預定通訊架構中該記憶體裝置的資料存取管理;以及 一傳輸介面電路,用以與該主機裝置進行通訊; 其中: 該記憶體控制器透過該記憶體控制器的該傳輸介面電路來自該主機裝置接收該複數個主機命令,分別根據該複數個主機命令之中的一組第一命令以及一組第二命令來利用一第一主動區塊以及一第二主動區塊接收一組第一資料以及一組第二資料,以及更新對應於該第一主動區塊的一第一暫時實體至邏輯位址映射表以及對應於該第二主動區塊的一第二暫時實體至邏輯位址映射表,其中該組第一命令以及該組第二命令分別指示要求將該組第一資料以及該組第二資料寫入至該記憶體裝置中;以及 因應該第一暫時實體至邏輯位址映射表以及該第二暫時實體至邏輯位址映射表之中任一個暫時實體至邏輯位址映射表的一表區域為滿,該記憶體控制器根據該第一暫時實體至邏輯位址映射表來更新該非揮發性記憶體中的一第一實體至邏輯位址映射表並根據該第二暫時實體至邏輯位址映射表來選擇性地更新該非揮發性記憶體中的一第二實體至邏輯位址映射表,以供進行後續處理,其中該第一暫時實體至邏輯位址映射表以及該第二實體至邏輯位址映射表係分別用以佔用該記憶體控制器內一隨機存取記憶體中具有一第一大小的一第一表區域以及具有一第二大小的一第二表區域。
- 一種記憶體裝置,其包含有申請專利範圍第15項所述之記憶體控制器,並且包含有: 該非揮發性記憶體,用以儲存資訊;以及 該記憶體控制器,耦接於該非揮發性記憶體,並用以控制該記憶體裝置的操作。
- 一種電子裝置,其包含有申請專利範圍第16項所述之記憶體裝置,並且另包含有: 該主機裝置,耦接於該記憶體裝置,其中該主機裝置包含有: 至少一處理器,用以控制該主機裝置的操作;以及 一電源供應電路,耦接於該至少一處理器,並且用以提供電源給該至少一處理器以及該記憶體裝置; 其中該記憶體裝置提供儲存空間給該主機裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/094,402 | 2023-01-09 | ||
US18/094,402 US12117932B2 (en) | 2023-01-09 | 2023-01-09 | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202429281A TW202429281A (zh) | 2024-07-16 |
TWI855819B true TWI855819B (zh) | 2024-09-11 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210303463A1 (en) | 2017-06-12 | 2021-09-30 | Western Digital Technologies, Inc. | System and Method of Data Writes and Mapping of Data for Multiple Sub-Drives |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210303463A1 (en) | 2017-06-12 | 2021-09-30 | Western Digital Technologies, Inc. | System and Method of Data Writes and Mapping of Data for Multiple Sub-Drives |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI720588B (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201814526A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TWI696073B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
TW201802680A (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
KR20140094278A (ko) | 반도체 장치 및 이의 동작 방법 | |
TW202016937A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN111737165B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TW201734793A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI766582B (zh) | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI855819B (zh) | 借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
CN111767005A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI847838B (zh) | 借助非平衡表搜尋來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
TWI758944B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TW202429281A (zh) | 借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 |