TWI662411B - 資料儲存裝置與資料處理方法 - Google Patents

資料儲存裝置與資料處理方法 Download PDF

Info

Publication number
TWI662411B
TWI662411B TW107116287A TW107116287A TWI662411B TW I662411 B TWI662411 B TW I662411B TW 107116287 A TW107116287 A TW 107116287A TW 107116287 A TW107116287 A TW 107116287A TW I662411 B TWI662411 B TW I662411B
Authority
TW
Taiwan
Prior art keywords
data page
block
sub
data
memory
Prior art date
Application number
TW107116287A
Other languages
English (en)
Other versions
TW201947408A (zh
Inventor
謝松晏
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW107116287A priority Critical patent/TWI662411B/zh
Priority to CN201810749717.4A priority patent/CN110489352B/zh
Priority to US16/387,864 priority patent/US10776265B2/en
Application granted granted Critical
Publication of TWI662411B publication Critical patent/TWI662411B/zh
Publication of TW201947408A publication Critical patent/TW201947408A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括一第一既定數量之資料頁。記憶體控制器,耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器於一非預期斷電回復程序中,將先前未完成之一垃圾收集操作之一目標區塊之資料頁切分為複數子區塊,依序對子區塊之一或多者執行二元搜尋,以決定出目標區塊的第一個空白資料頁,由第一個空白資料頁依序往前搜尋以決定出目標區塊的最後一個有效資料頁,並且根據最後一個有效資料頁重新執行垃圾收集操作。各子區塊包括一第二既定數量之資料頁,第二既定數量小於第一既定數量,並且其中第二既定數量為2的冪次方。

Description

資料儲存裝置與資料處理方法
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可快速並且準確地搜尋出記憶體區塊最後的有效資料頁。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
一般而言,若在編輯快閃記憶體時遭遇非預期斷電(Sudden Power Off,縮寫為SPO),正在寫入的資料或已寫入的資料可能會被破壞。舉例來說,當快閃記憶體在進行垃圾收集(Garbage Collection,縮寫為GC)的過程時突然發生斷電時,將導致目前正在寫入的記憶體區塊(即,目標區塊,destination block)產生毀損。因此,於快閃記憶體重新上電後,通常會執行對應之一非預期斷電回復(Sudden Power Off Recovery,SPOR)程序,用以搜尋出最後的有效資料頁,並且 續行被中斷的垃圾收集程序。
然而,隨著快閃記憶體儲存容量提升,搜尋有效資料頁所需的時間也跟著變長。
有鑒於此,本發明提出一種資料處理方法,可快速並且準確地搜尋出記憶體區塊最後的有效資料頁。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括一第一既定數量之資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器於一非預期斷電回復程序中,將先前未完成之一垃圾收集操作之一目標區塊之資料頁切分為複數子區塊,依序對子區塊之一或多者執行二元搜尋,以決定出目標區塊的第一個空白資料頁,由第一個空白資料頁依序往前搜尋以決定出目標區塊的最後一個有效資料頁,並且根據最後一個有效資料頁重新執行垃圾收集操作。各子區塊包括一第二既定數量之資料頁,第二既定數量小於第一既定數量,並且其中第二既定數量為2的冪次方。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體裝置包括複數記憶體區塊,各記憶體區塊包括一第一既定數量之資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。資料處理方法包括:於記憶體裝置之一非預期斷電回復程序中,將先前未完成之一垃圾收集操作之一目標區塊之該等資料頁切分為複數子區塊,其中各子區塊包括一第二既定 數量之資料頁,第二既定數量小於第一既定數量,並且其中第二既定數量為2的冪次方;依序對子區塊之一或多者執行二元搜尋,以決定出目標區塊的第一個空白資料頁;由第一個空白資料頁依序往前搜尋以決定出目標區塊的最後一個有效資料頁;以及根據最後一個有效資料頁重新執行垃圾收集操作。
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112M‧‧‧唯讀記憶體
112C‧‧‧程式碼
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧記憶體裝置
130‧‧‧主機裝置
132‧‧‧編碼器
134‧‧‧解碼器
210_1、210_2、210_3、210_4、210_n‧‧‧來源區塊
220_1、220_2‧‧‧目標區塊
P0、P1、P2、P99、P100、P101、P102、P(N)‧‧‧資料頁
第1圖係顯示根據本發明之一實施例所述之記憶體裝置的示意圖。
第2圖係顯示垃圾收集的過程中將多個來源區塊中的有效資料搬移至多個目標區塊的示意圖。
第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。
第4圖係顯示根據本發明之一實施例所述之由目標區塊中的第一個空白資料頁依序往前讀取以決定出目標區塊的最後一個有效資料頁的示意圖。
第5圖係顯示根據本發明之第一實施例所述之資料處理方法的詳細流程圖。
第6圖係顯示根據本發明之第一實施例所述之二元搜尋的詳細流程圖。
第7圖係顯示根據本發明之第二實施例所述之資料處理方法的詳細流程圖。
第8A圖與第8B圖係顯示根據本發明之第二實施例所述之二元搜尋的詳細流程圖。
第9圖係顯示根據本發明之第二實施例所述之輔助判斷的詳細流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C 之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可單層式儲存(Single-Level Cell,SLC)記憶體區塊、多層式儲存(Multiple-Level Cell,MLC)記憶體區塊以及/或是三層式儲存(Triple-Level Cell,TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。
根據本發明之一實施例,各記憶體區塊包括一第一既定數量之資料頁。其中,所述之資料頁可以是一邏輯資料頁,因此,SLC記憶體區塊、MLC記憶體區塊以及TLC記憶體區塊所對應的第一既定數量可能為不同。例如,TLC記憶體區塊所包含的邏輯資料頁數量可為SLC記憶體區塊的三倍。
一般而言,記憶體裝置120的一些特定程序中需要執行資料搬移。例如,記憶體區塊的垃圾收集(garbage collection)程序便會需要執行資料搬移。當執行資料搬移時,資料會自來源區塊搬移(被寫入)至目標區塊。於資料搬移的過程中,最不樂見的就是發生非預期斷電(Sudden Power Off,縮寫為SPO)。
當記憶體裝置120於資料搬移的過程中發生非預期斷電,傳統的處理方法為放棄已完成的資料搬移,即放棄已被搬移至目標區塊之資料,並且由記憶體控制器110尋找其他 空的記憶體區塊,再重新開始資料搬移。舉例而言,當資料儲存裝置100上電時,微處理器112可自記憶體裝置120讀取一些變數值(例如,非預期斷電旗標或SPO計數值)判斷是否發生過非預期斷電。其中,SPO計數值係用於累計發生非預期斷電的次數,當SPO計數值增加則代表記憶體裝置120的上次關機是非預期斷電造成的。此外,非預期斷電旗標係用於指出資料儲存裝置100上一次的關機是否是非預期斷電造成的,例如:當非預期斷電旗標的值為1時,代表發生非預期斷電,當非預期斷電旗標的值為0時,代表正常關機,於每次資料儲存裝置100上電時,微處理器111可將非預期斷電旗標設定為1並儲存於記憶體裝置120,而當記憶體裝置120正常關機時,微處理器111可將非預期斷電旗標設定為0並儲存於記憶體裝置120,因此若發生非預期期斷電後時再次上電時,非預期斷電旗標仍會保持在數值1。若記憶體控制器110發現先前發生非預期斷電時,有尚未完成的資料搬移,則記憶體控制器110直接放棄該未完成的資料搬移,選取其他的空的記憶體區塊作為目標區塊,並且再從頭開始進行資料搬移。
與傳統的處理方法不同,根據本發明之一實施例,當資料儲存裝置100上電時,微處理器112/記憶體控制器110(為簡化起見,以下統一以記憶體控制器110作為代表進行說明)判斷是否發生過非預期斷電。當記憶體控制器110判斷先前於執行垃圾收集操作之過程中發生過非預期斷電(SPO)時,將執行對應之非預期斷電回復(Sudden Power Off Recovery,SPOR)程序,以找到適當的資料頁並繼續先前未完成的垃圾收 集操作。
第2圖係顯示垃圾收集的過程中將多個來源區塊中的有效資料搬移至多個目標區塊的示意圖。假設記憶體裝置120包含了多個來源區塊210_1~210_n以及多個目標區塊220_1、220_2,其中多個來源區塊210_1~210_n可以是單層式儲存(SLC)記憶體區塊,且多個目標區塊220_1、220_2可以是多層式儲存(MLC)記憶體區塊或是三層式儲存(TLC)記憶體區塊。在資料儲存裝置100的操作中,當記憶體控制器110自主機裝置130接收到寫入命令時,會先將資料依序寫入至來源區塊210_1~210_n中,而由於這些寫入的資料可能會因為後續的資料更新而使得部分變為無效資料,因此,當來源區塊210_1~210_n中可供寫入的剩餘區塊數量低於一特定數值時,記憶體控制器110便會將來源區塊210_1~210_n中的有效資料搬移到目標區塊220_1、220_2中,以釋放出來源區塊210_1~210_n來供後續使用。上述的操作稱為垃圾收集操作,然而,垃圾收集操作的觸發條件並不限於上述來源區塊210_1~210_n中可供寫入的剩餘區塊數量不足的情形,例如觸發條件亦可為某些來源區塊210_1~210_n的資料品質不佳的情形。由於本領域具有通常知識者應能了解到垃圾收集操作的操作內容,故相關細節在此不贅述。
第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。
步驟S302:於非預期斷電回復程序中,記憶體控制器110將先前未完成之一垃圾收集操作之一目標區塊之複數 資料頁切分為複數子區塊,使得子區塊包括一第二既定數量之資料頁。如上述,各記憶體區塊包括第一既定數量之資料頁,而切分後的子區塊包括第二既定數量之資料頁,因此第二既定數量小於第一既定數量,並且第二既定數量為2的冪次方(即,第二既定數量=2y(power of 2),其中y為一正整數)。
根據本發明之一實施例,上述切分以等分為較佳,使得切分後,各子區塊均包括第二既定數量之資料頁。然而,值得注意的是,本發明之切分操作並不限於將目標區塊等分,其中,步驟S302亦可包含其他不等分之切分操作,只要使得切分後的子區塊所包含之資料頁數量均為2的冪次方之切分操作均涵蓋於本發明之範疇。
步驟S304:記憶體控制器110依序對子區塊之一或多者執行二元搜尋(binary search),以決定出目標區塊的第一個空白資料頁。於步驟S304中,若第一個空白資料頁係存在於第一個被選定執行二元搜尋的子區塊,則記憶體控制器110僅需對一個子區塊執行二元搜尋。若第一個空白資料頁不存在於第一個被選定的子區塊,則記憶體控制器110將對一個以上子區塊執行二元搜尋。
步驟S306:記憶體控制器110由第一個空白資料頁依序往前搜尋,用以決定出目標區塊的最後一個有效資料頁。
步驟S308:記憶體控制器110根據該最後一個有效資料頁重新執行垃圾收集操作。
根據本發明之一實施例,於步驟S304中,記憶體 控制器110根據所搜尋之資料頁的一備用區域(spare region)的內容判斷所搜尋之資料頁是否為空白資料頁。舉例而言,記憶體控制器110可以根據備用區域是否記載相關的元資料(metadata)來判斷資料頁是否是空白資料頁。若備用區域所記載的內容為一預設值,例如,為全1(0XFFFF)的一數值,則判斷該資料頁為空白資料頁。
根據本發明之一實施例,記憶體控制器110可依序給予各子區塊對應之一序號(index),該些序號可為一遞增數列。此外,各記憶體區塊所包含之複數資料頁亦會被給予對應之一(全域的)序號。於本發明之一實施例中,各子區塊所包含的資料頁序號越大,該子區塊所對應之子區塊序號就越大。此外,根據本發明之一實施例,於步驟S304中,記憶體控制器110選擇序號最小的子區塊開始執行二元搜尋。根據本發明之另一實施例,於步驟S304中,記憶體控制器110選擇具有序號最接近此遞增數列之一中間值的子區塊開始執行二元搜尋。值得注意的是,根據本發明之其他實施例,記憶體控制器110亦可選擇序號最大的子區塊開始執行二元搜尋。以下段落將有更詳細的說明。
根據本發明之一實施例,在決定出第一個空白資料頁後,於步驟S306中,記憶體控制器110會由第一個空白資料頁依序往前讀取以決定出目標區塊(例如,目標區塊220_1)的最後一個有效資料頁,並根據該最後一個有效資料頁以重新進行垃圾收集操作。
第4圖係顯示根據本發明之一實施例所述之由目 標區塊中的第一個空白資料頁依序往前讀取以決定出目標區塊的最後一個有效資料頁的示意圖。假設記憶體控制器110所決定出之目標區塊220_1的第一個空白資料頁是P102,則本發明之一實施例,記憶體控制器110會先讀取資料頁P101的內容以判斷品質是否符合一標準。若資料頁P101的品質符合該標準,則判斷資料頁P101為有效資料頁。若資料頁P101的品質不符該標準,則判斷資料頁P101為無效資料頁。舉例來說,解碼器134對資料頁P101的內容進行解碼操作(包含,錯誤更正操作),以判斷資料頁P101是否可以被成功的讀取(即,可以正確地完成解碼操作),若是資料頁P101可以被成功的讀取,則判斷資料頁P101為有效資料頁,若資料頁P101無法被成功的讀取,則判斷資料頁P101為無效資料頁。在另一範例中,該標準也可以是資料頁P101之錯誤位元的數量或比例低於一臨界值。
於此實施例中,資料頁P101係為無效資料頁,因此,記憶體控制器110繼續往前讀取資料頁P100的內容以判斷品質是否符合該標準。於此實施例中,資料頁P100也為無效資料頁,故記憶體控制器110繼續往前讀取資料頁的內容直到品質符合標準為止。於此實施例中,由於資料頁P99係為第一個被判定為品質符合該標準的資料頁,故資料頁P99決定為目標區塊220_1的最後一個有效資料頁,且此時記憶體控制器110停止繼續往前讀取資料頁。
根據本發明之一實施例,在決定出最後一個有效資料頁後,於步驟S308中,記憶體控制器110根據最後一個 有效資料頁所記錄之一來源區塊及其中的資料頁資訊重新執行垃圾收集操作。
於第4圖所示之實施例中,在決定出目標區塊220_1的最後一個有效資料頁P99之後,記憶體控制器110讀取資料頁P99中的備用區域以取得所對應之來源區塊的資料頁,並據以重新進行垃圾收集操作。根據本發明之一實施例,假設資料頁P99中的備用區域記錄了資料頁P99中的資料是由來源區塊210_3的第13個資料頁讀取而來的,則記憶體控制器110可以重新啟動垃圾收集操作以自來源區塊210_3的第14個資料頁開始依序將其中的有效資料複製到目標區塊220_1的剩餘資料頁P102~P(N)中。
根據本發明之另一實施例,記憶體控制器110也可以將目標區塊220_1的剩餘資料頁P102~P(N)全部寫滿無效資料(dummy data)以維持目標區塊220_1的穩定性,並重新啟動垃圾收集操作以自來源區塊210_3的第14個資料頁開始依序將其中的有效資料複製到目標區塊220_2中。
第5圖係顯示根據本發明之第一實施例所述之資料處理方法的詳細流程圖。
步驟S502:記憶體控制器110將先前未完成之垃圾收集操作之目標區塊(例如,目標區塊220_1)切分為包含複數資料頁之n個子區塊,並且依序給予各子區塊對應之一序號,其中,n為一正整數,並且所述之切分操作以使各子區塊所包含之資料頁數量相等為較佳,但不限於此。
步驟S504:選擇一子區塊開始執行二元搜尋,並且根據所選擇之子區塊設定二元搜尋之參數,包含被選擇的子區塊序號(i)以及欲搜尋之資料頁數量(N)。於此實施例中,記憶體控制器110選擇序號最小的子區塊(第一個子區塊)開始執行二元搜尋,因此,i=0,N則是第一個子區塊所包含的資料頁數量,並且N為2的冪次方(即,N=2y,其中y為一正整數)。
步驟S506:記憶體控制器110對第i個子區塊執行二元搜尋。
第6圖係顯示根據本發明之第一實施例所述之二元搜尋的詳細流程圖。
步驟S602:記憶體控制器110根據子區塊序號(i)以及欲搜尋之資料頁數量(N)決定資料頁搜尋範圍(R)、目前被選擇的子區塊的起始資料頁(SP)、將被搜尋的資料頁編號(P)以及搜尋方向(D),其中,資料頁搜尋範圍R=N/2,起始資料頁SP=i*N,將被搜尋的資料頁P=SP+N/2,搜尋方向D=2,其代表向後搜尋(即,資料頁序號遞增之方向)。值得注意的是,於本發明之實施例中,將搜尋範圍二分的除法為整數除法,亦即,R=N/2所得之R為整數,並且為N/2的商數。
步驟S604:記憶體控制器110讀取資料頁(P)。根據本發明之一實施例,記憶體控制器110可讀取資料頁(P)的一備用區域(spare region),以根據讀取之內容判斷資料頁(P)是否為空白資料頁。根據本發明之另一實施例,記憶體控制器110亦可讀取資料頁(P)的一資料區域(data region),以根據讀取之內容判斷資料頁(P)是否為空白資料頁。
步驟S606:記憶體控制器110判斷資料頁(P)是否為空白資料頁。若是,則流程進入步驟S608。若否,則流程進入步驟S610。
步驟S608:記憶體控制器110改變搜尋方向,並且往反方向(向前)設定下次要搜尋的資料頁編號(P),其中,D=1,P=(P-R/2)。
步驟S610:記憶體控制器110維持搜尋方向,並且向後設定下次要搜尋的資料頁編號(P),其中,D=2,P=(P+R/2)。
步驟S612:記憶體控制器110判斷目前資料頁搜尋範圍(R)是否為1。若否,則流程進入步驟S614。若是,則流程進入步驟S616。
步驟S614:記憶體控制器110將資料頁搜尋範圍(R)減半(R=R/2)。爾後,流程返回步驟S604讀取資料頁(P)。
步驟S616:記憶體控制器110判斷搜尋方向是否為向前(即,資料頁序號遞減之方向)。若是,則流程進入步驟S618。若否,則流程進入步驟S624。
步驟S618:記憶體控制器110判斷下次要搜尋的資料頁編號(P)是否小於一既定臨界值(X)。若是,則流程進入步驟S620。若否,則流程進入步驟S622。根據本發明之一實施例,既定臨界值(X)可被設定為一較小的數值,例如,X=4,用以作為決定是否放棄記憶體區塊的判斷依據。
步驟S620:記憶體控制器110決定放棄此記憶體區塊。由於此記憶體區塊被寫入的資料太少,因此,記憶體控 制器110可決定直接放棄此記憶體區塊之所有有效資料頁的內容,並選擇另一目標區塊以重新執行垃圾收集操作,用以將至少一來源區塊中的有效資料搬移至另一目標區塊。
步驟S622:記憶體控制器110決定出第一個空白資料頁為(P)。
步驟S624:記憶體控制器110判斷下次要搜尋的資料頁編號(P)是否等於欲搜尋之資料頁數量(N)。若是,則流程進入步驟S626。若否,則流程進入步驟S628。
步驟S626:記憶體控制器110判斷目前所選擇之子區塊全滿。
步驟S628:記憶體控制器110決定出第一個空白資料頁為(P+1)。
如第6圖所示,二元搜尋的搜尋結果可能為順利找出第一個空白資料頁(目前所選擇之子區塊並未全滿)、目前所選擇之子區塊全滿、或者決定放棄此記憶體區塊。
回到第5圖,執行完步驟S506後,進入步驟S508。
步驟S508:記憶體控制器110判斷搜尋結果是否為放棄此記憶體區塊。若是,則流程進入步驟S510。若否,則流程進入步驟S512。
步驟S510:記憶體控制器110執行放棄記憶體區塊之相關操作。例如,記憶體控制器110不再續用原本的目標區塊(例如,目標區塊220_1),直接使用另一個記憶體區塊(例如,目標區塊220_2)做為新的目標區塊,並且重新將至少一來源區塊中的有效資料搬移至新的目標區塊。由於非預期斷電發 生前,原本的目標區塊的相關連結尚未被更新,因此,記憶體控制器110無需對原本的目標區塊做任何特殊處理,原本的目標區塊內所儲存的資料會於後續的資料搬移完成後變成無效資料。
步驟S512:記憶體控制器110判斷搜尋結果是否為目前所選擇之子區塊全滿。若是,則流程進入步驟S514。若否,則流程進入步驟S520。
步驟S514:記憶體控制器110判斷目前被選擇的子區塊序號(i)是否等於子區塊總數量(n)。若是,則流程進入步驟S516。若否,則流程進入步驟S518。
步驟S516:記憶體控制器110判斷記憶體區塊全滿,亦即,目標區塊(例如,目標區塊220_1)沒有空白資料頁。記憶體控制器110可直接使用另一個記憶體區塊(例如,目標區塊220_2)續行被中斷的垃圾收集程序。
步驟S518:記憶體控制器110累加子區塊序號(i),其中i=i+1,並且流程回到步驟S506,用以持續對下一個子區塊執行二元搜尋。值得注意的是,根據本發明之其他實施例,若於步驟S504中,記憶體控制器110選擇序號最大的子區塊(最後一個子區塊)開始執行二元搜尋,並設定i=n,則步驟S518可改為減少子區塊序號(i),使i=i-1,並且步驟S514的判斷可改為子區塊序號(i)是否等於0。
步驟S520:由於目前所選擇之子區塊並未全滿,記憶體控制器110可從第一個空白資料頁依序往前搜尋,以決定出目標區塊的最後一個有效資料頁。
第7圖係顯示根據本發明之第二實施例所述之資料處理方法的詳細流程圖。於第二實施例中,記憶體控制器110選擇具有序號最接近中間值的子區塊開始執行二元搜尋。
步驟S702:記憶體控制器110將先前未完成之垃圾收集操作之目標區塊(例如,目標區塊220_1)切分為包含複數資料頁之n個子區塊,並且依序給予各子區塊對應之一序號,其中,n為一正整數,並且所述之切分操作以使各子區塊所包含之資料頁數量相等為較佳,但不限於此。
步驟S704:選擇一子區塊開始執行二元搜尋,並且根據所選擇之子區塊設定二元搜尋之參數,包含被選擇的子區塊序號(i)、子區塊搜尋範圍(r)、以及欲搜尋之資料頁數量(N)。於此實施例中,記憶體控制器110選擇具有序號最接近遞增數列中間值的子區塊開始執行二元搜尋,因此,i=n/2,r=n/2,N則是所選擇之子區塊所包含的資料頁數量,並且N為2的冪次方(即,N=2y,其中y為一正整數)。
步驟S706:記憶體控制器110對第i個子區塊執行二元搜尋。
第8A圖與第8B圖係顯示根據本發明之第二實施例所述之二元搜尋的詳細流程圖。
步驟S802:記憶體控制器110根據子區塊序號(i)以及欲搜尋之資料頁數量(N)決定資料頁搜尋範圍(R)、目前被選擇的子區塊的起始資料頁(SP)、將被搜尋的資料頁編號(P)以及搜尋方向(D),其中,資料頁搜尋範圍R=N/2,起始資料頁SP=i*N,將被搜尋的資料頁編號P=SP+N/2,搜尋方向D=2, 其代表向後搜尋(即,資料頁序號遞增之方向)。值得注意的是,於本發明之實施例中,將搜尋範圍二分的除法為整數除法,亦即,R=N/2所得之R為整數,即,N/2的商數。
步驟S804:記憶體控制器110讀取資料頁(P)。根據本發明之一實施例,記憶體控制器110可讀取資料頁(P)的一備用區域(spare region),以根據讀取之內容判斷資料頁(P)是否為空白資料頁。根據本發明之另一實施例,記憶體控制器110亦可讀取資料頁(P)的一資料區域(data region),以根據讀取之內容判斷資料頁(P)是否為空白資料頁。
步驟S806:記憶體控制器110判斷資料頁(P)是否為空白資料頁。若是,則流程進入步驟S808。若否,則流程進入步驟S810。
步驟S808:記憶體控制器110改變搜尋方向,並且往反方向(向前)設定下次要搜尋的資料頁編號(P),其中,D=1,P=(P-R/2)。
步驟S810:記憶體控制器110維持搜尋方向,並且向後設定下次要搜尋的資料頁編號(P),其中,D=2,P=(P+R/2)。
步驟S812:記憶體控制器110判斷目前資料頁搜尋範圍(R)是否為1。若否,則流程進入步驟S814。若是,則流程進入步驟S816。
步驟S814:記憶體控制器110將資料頁搜尋範圍(R)減半(R=R/2)。爾後,流程返回步驟S804讀取資料頁(P)。
步驟S816:記憶體控制器110判斷搜尋方向是否 為向前(即,資料頁序號遞減之方向)。若是,則流程進入步驟S818。若否,則流程進入步驟S828。
步驟S818:記憶體控制器110判斷下次要搜尋的資料頁編號(P)是否小於一既定臨界值(X)。若是,則流程進入步驟S820。若否,則流程進入步驟S822。根據本發明之一實施例,既定臨界值(X)可被設定為一較小的數值,例如,X=4,用以作為決定是否放棄記憶體區塊的判斷依據。
步驟S820:記憶體控制器110決定放棄此記憶體區塊。由於此記憶體區塊被寫入的資料太少,因此,記憶體控制器110可決定直接放棄此記憶體區塊之所有有效資料頁的內容,並選擇另一目標區塊以重新執行垃圾收集操作,用以將至少一來源區塊中的有效資料搬移至另一目標區塊。
步驟S822:記憶體控制器110決定出第一個空白資料頁為(P)。
步驟S824:記憶體控制器110判斷第一個空白資料頁為(P)是否為起始資料頁(SP)。若是,則流程進入步驟S826。若否,則流程結束。
步驟S826:記憶體控制器110判斷目前所選擇之子區塊全空。
步驟S828:記憶體控制器110判斷下次要搜尋的資料頁編號(P)是否等於欲搜尋之資料頁總數量(N)。若是,則流程進入步驟S830。若否,則流程進入步驟S832。
步驟S830:記憶體控制器110判斷目前所選擇之子區塊全滿。
步驟S832:記憶體控制器110決定出第一個空白資料頁為(P+1)。
如第8圖所示,二元搜尋的搜尋結果可能為順利找出第一個空白資料頁(目前所選擇之子區塊並未全滿也未全空)、目前所選擇之子區塊全滿、目前所選擇之子區塊全空、或者決定放棄此記憶體區塊。
回到第7圖,執行完步驟S706後,記憶體控制器110根據二元搜尋的搜尋結果決定是否中止二元搜尋,或者往後選擇序號較大或往前選擇序號較小的次一子區塊繼續執行二元搜尋。
步驟S708:記憶體控制器110判斷搜尋結果是否為放棄此記憶體區塊。若是,則流程進入步驟S710。若否,則流程進入步驟S712。
步驟S710:記憶體控制器110執行放棄記憶體區塊之相關操作。例如,記憶體控制器110不再續用原本的目標區塊(例如,目標區塊220_1),直接使用另一個記憶體區塊(例如,目標區塊220_2)做為新的目標區塊,並且重新將至少一來源區塊中的有效資料搬移至新的目標區塊。由於非預期斷電發生前,原本的目標區塊的相關連結尚未被更新,因此,記憶體控制器110無需對原本的目標區塊做任何特殊處理,原本的目標區塊內所儲存的資料會於後續的資料搬移完成後變成無效資料。
步驟S712:記憶體控制器110執行一輔助判斷流程,以決定下次要搜尋的子區塊。
第9圖係顯示根據本發明之第二實施例所述之輔助判斷的詳細流程圖。
步驟S902:記憶體控制器110判斷目前被選擇的子區塊序號(i)是否等於(n-1)或等於0。若是,則流程進入步驟S914。若否,則流程進入步驟S904。
步驟S904:記憶體控制器110判斷目前所選擇之子區塊是否全滿。若是,則流程進入步驟S906。若否,則流程進入步驟S910。
步驟S906:記憶體控制器110決定往後選擇序號較大的次一子區塊,即,設定i=i+r。
步驟S908:記憶體控制器110決定繼續執行二元搜尋。
步驟S910:記憶體控制器110判斷目前所選擇之子區塊是否全空。若是,則流程進入步驟S912。若否,則流程進入步驟S914。
步驟S912:記憶體控制器110決定往前選擇序號較小的次一子區塊,即,設定i=i-r。
步驟S914:記憶體控制器110決定中止二元搜尋。
回到第7圖,執行完步驟S712後,進入步驟S714。
步驟S714:記憶體控制器110判斷步驟S712的執行結果是否為繼續執行二元搜尋。若是,則流程進入步驟S716。若否,則流程進入步驟S718。
步驟S716:記憶體控制器110將子區塊搜尋範圍(r) 減半(r=r/2)。爾後,流程返回步驟S706對第i個子區塊執行二元搜尋。
步驟S718:記憶體控制器110中止二元搜尋,並且從第一個空白資料頁依序往前搜尋,以決定出目標區塊的最後一個有效資料頁。
如上所述,根據本發明之實施例,資料儲存裝置100在先前有不正常斷電的情形且有尚未完成的垃圾收集操作時,記憶體控制器110會使用二元搜尋以快速且準確地尋找到目標區塊中第一個空白資料頁,之後再由該第一個空白資料頁依序往前讀取以決定出該目標區塊的最後一個有效資料頁,以供重新進行垃圾收集操作。因此,相較於先前技術中需要搜尋許多的資料頁才能決定出該目標區塊的最後一個有效資料頁,本發明具有較高的效率以及處理速度。
此外,本發明更可應用於記憶體區塊所包含之資料頁總數量並非為2的冪次方的記憶體裝置,即,上述之第一既定數量並非為2的冪次方的情況。舉例而言,當目標區塊為TLC記憶體區塊時,其所包含的邏輯資料頁數量可能為3*2y。一般而言,於此情況下,二元搜尋法可能會失敗。然而,根據本發明之實施例,若應用本發明所提出之資料處理方法,將目標區塊的資料頁等分為三個子區塊,使每個子區塊所包含的資料頁數量可以是2的冪次方,便可對切分後的一或多個子區塊進行二元搜尋,以快速且準確地尋找到目標區塊中第一個空白資料頁及最後一個有效資料頁,以供重新進行垃圾收集操作。
申請專利範圍中用以修飾元件之“第一”、“第 二”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (15)

  1. 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,各記憶體區塊包括一第一既定數量之資料頁;以及一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器於一非預期斷電回復程序中,將先前未完成之一垃圾收集(Garbage Collection)操作之一目標區塊之該等資料頁切分為複數子區塊,依序對該等子區塊之一或多者執行二元搜尋(binary search),以決定出該目標區塊的第一個空白資料頁,由該第一個空白資料頁依序往前搜尋以決定出該目標區塊的最後一個有效資料頁,並且根據該最後一個有效資料頁重新執行該垃圾收集操作,其中各子區塊包括一第二既定數量之資料頁,該第二既定數量小於該第一既定數量,並且其中該第二既定數量為2的冪次方。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器根據所搜尋之資料頁的一備用區域(spare region)的內容判斷所搜尋之資料頁是否為空白資料頁。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器依序給予各子區塊對應之一序號,該等子區塊所對應之該等序號為一遞增數列,並且該記憶體控制器從序號最小的該子區塊開始執行二元搜尋。
  4. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器依序給予各子區塊對應之一序號,該等子區塊所對應之該等序號為一遞增數列,並且該記憶體控制器從該序號最接近該遞增數列之一中間值的該子區塊開始執行二元搜尋。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中該記憶體控制器根據該序號最接近該遞增數列之該中間值的該子區塊之一搜尋結果決定是否中止二元搜尋,或者繼續選擇序號較大或較小的次一子區塊執行二元搜尋。
  6. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器根據該最後一個有效資料頁所記錄之一來源區塊及其中的資料頁資訊重新執行該垃圾收集操作。
  7. 如申請專利範圍第1項所述之資料儲存裝置,其中當該最後一個有效資料頁的一序號低於一臨界值時,該記憶體控制器決定放棄該目標區塊內之所有有效資料頁的內容,並選擇另一目標區塊以重新執行該垃圾收集操作,用以將至少一來源區塊中的有效資料搬移至該另一目標區塊。
  8. 如申請專利範圍第1項所述之資料儲存裝置,該記憶體控制器於決定該最後一個有效資料頁時,由該第一個空白資料頁依序往前讀取直到所讀取的資料頁的品質符合一標準為止,而所讀取之第一個符合該標準的資料頁係作為該最後一個有效資料頁。
  9. 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,各記憶體區塊包括一第一既定數量之資料頁,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括:於該記憶體裝置之一非預期斷電回復程序中,將先前未完成之一垃圾收集(Garbage Collection)操作之一目標區塊之該等資料頁切分為複數子區塊,其中各子區塊包括一第二既定數量之資料頁,該第二既定數量小於該第一既定數量,並且其中該第二既定數量為2的冪次方;依序對該等子區塊之一或多者執行二元搜尋(binary search),以決定出該目標區塊的第一個空白資料頁;由該第一個空白資料頁依序往前搜尋以決定出該目標區塊的最後一個有效資料頁;以及根據該最後一個有效資料頁重新執行該垃圾收集操作。
  10. 如申請專利範圍第9項所述之資料處理方法,其中依序對該等子區塊之一或多者執行二元搜尋以決定出該目標區塊的該第一個空白資料頁的步驟更包括:根據所搜尋之資料頁的一備用區域(spare region)的內容判斷所搜尋之資料頁是否為空白資料頁。
  11. 如申請專利範圍第9項所述之資料處理方法,其中依序對該等子區塊之一或多者執行二元搜尋以決定出該目標區塊的該第一個空白資料頁的步驟更包括:依序給予各子區塊對應之一序號,其中該等子區塊所對應之該等序號為一遞增數列;以及從序號最小的該子區塊開始執行二元搜尋。
  12. 如申請專利範圍第9項所述之資料處理方法,其中依序對該等子區塊之一或多者執行二元搜尋以決定出該目標區塊的該第一個空白資料頁的步驟更包括:依序給予各子區塊對應之一序號,其中該等子區塊所對應之該等序號為一遞增數列;以及從該序號最接近該遞增數列之一中間值的該子區塊開始執行二元搜尋。
  13. 如申請專利範圍第12項所述之資料處理方法,其中依序對該等子區塊之一或多者執行二元搜尋以決定出該目標區塊的該第一個空白資料頁的步驟更包括:根據該序號最接近該遞增數列之該中間值的該子區塊之一搜尋結果決定是否中止二元搜尋,或者繼續選擇序號較大或較小的次一子區塊執行二元搜尋。
  14. 如申請專利範圍第9項所述之資料處理方法,其中根據該最後一個有效資料頁重新執行該垃圾收集操作的步驟更包括:根據該最後一個有效資料頁所記錄之一來源區塊及其中的資料頁資訊重新執行該垃圾收集操作。
  15. 如申請專利範圍第9項所述之資料處理方法,其中根據該最後一個有效資料頁重新執行該垃圾收集操作的步驟更包括:判斷該最後一個有效資料頁的一序號是否低於一臨界值;以及當該最後一個有效資料頁的該序號低於該臨界值時,放棄該目標區塊內之所有有效資料頁的內容,並選擇另一目標區塊以重新執行該垃圾收集操作,用以將至少一來源區塊中的有效資料搬移至該另一目標區塊。
TW107116287A 2018-05-14 2018-05-14 資料儲存裝置與資料處理方法 TWI662411B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107116287A TWI662411B (zh) 2018-05-14 2018-05-14 資料儲存裝置與資料處理方法
CN201810749717.4A CN110489352B (zh) 2018-05-14 2018-07-10 数据储存装置与数据处理方法
US16/387,864 US10776265B2 (en) 2018-05-14 2019-04-18 Data storage devices and data processing methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107116287A TWI662411B (zh) 2018-05-14 2018-05-14 資料儲存裝置與資料處理方法

Publications (2)

Publication Number Publication Date
TWI662411B true TWI662411B (zh) 2019-06-11
TW201947408A TW201947408A (zh) 2019-12-16

Family

ID=67764160

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107116287A TWI662411B (zh) 2018-05-14 2018-05-14 資料儲存裝置與資料處理方法

Country Status (3)

Country Link
US (1) US10776265B2 (zh)
CN (1) CN110489352B (zh)
TW (1) TWI662411B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733360B (zh) * 2020-03-09 2021-07-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20210154401A (ko) * 2020-06-12 2021-12-21 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN113220502B (zh) * 2021-05-07 2023-10-31 深圳宏芯宇电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201324144A (zh) * 2011-12-01 2013-06-16 Silicon Motion Inc 快閃記憶體儲存陣列控制方法、與快閃記憶體
US20150179274A1 (en) * 2013-12-24 2015-06-25 Kyungryun Kim Memory system, memory controller, and methods associated therewith
TW201807568A (zh) * 2016-08-19 2018-03-01 愛思開海力士有限公司 記憶體元件、具有它的儲存系統及其操作方法
US20180107412A1 (en) * 2016-10-14 2018-04-19 SK Hynix Inc. Memory system and operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201324144A (zh) * 2011-12-01 2013-06-16 Silicon Motion Inc 快閃記憶體儲存陣列控制方法、與快閃記憶體
US20150179274A1 (en) * 2013-12-24 2015-06-25 Kyungryun Kim Memory system, memory controller, and methods associated therewith
TW201807568A (zh) * 2016-08-19 2018-03-01 愛思開海力士有限公司 記憶體元件、具有它的儲存系統及其操作方法
US20180107412A1 (en) * 2016-10-14 2018-04-19 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
CN110489352B (zh) 2022-09-20
US10776265B2 (en) 2020-09-15
CN110489352A (zh) 2019-11-22
US20190347198A1 (en) 2019-11-14
TW201947408A (zh) 2019-12-16

Similar Documents

Publication Publication Date Title
TWI607312B (zh) 資料儲存裝置及其資料寫入方法
TWI541819B (zh) 用來進行錯誤更正之方法、記憶裝置、與控制器
KR100857252B1 (ko) 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
TWI455136B (zh) 用來進行資料整形之方法以及相關之記憶裝置及其控制器
TWI677879B (zh) 資料儲存裝置與資料處理方法
TWI658462B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI662411B (zh) 資料儲存裝置與資料處理方法
US20140075100A1 (en) Memory system, computer system, and memory management method
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
TWI664634B (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
US11372578B2 (en) Control method for flash memory controller and associated flash memory controller and memory device
TWI659304B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TW202001565A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US11068201B2 (en) Flash memory controller, method for managing flash memory module and associated electronic device
TW201919048A (zh) 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
US11487475B2 (en) Control method for referring to expired block table to perform expired block recycling operation and associated flash memory controller and memory device
TWI655640B (zh) 資料儲存裝置與資料處理方法
CN111984462A (zh) 无预警断电复原管理方法、记忆装置、控制器及电子装置
TWI808596B (zh) 讀取電壓準位校正方法、記憶體儲存裝置及記憶體控制電路單元
TWI670598B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI664527B (zh) 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
TWI640868B (zh) 資料儲存裝置及其資料寫入方法
TWI760094B (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TWI691967B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
TW201947594A (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置