TWI718889B - 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 - Google Patents
改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 Download PDFInfo
- Publication number
- TWI718889B TWI718889B TW109107348A TW109107348A TWI718889B TW I718889 B TWI718889 B TW I718889B TW 109107348 A TW109107348 A TW 109107348A TW 109107348 A TW109107348 A TW 109107348A TW I718889 B TWI718889 B TW I718889B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- memory cell
- written
- read
- Prior art date
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
一種管理一快閃記憶體模組中之複數個記憶體單元的方法,包含:針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及根據該錯誤檢查的結果來執行一第二刷新操作,其中執行該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立關聯該另一第一記憶體單元的一編程時戳。
Description
本發明係關於快閃記憶體,尤指一種用於改善快閃記憶體之讀取重試的方法與相關控制器及相關儲存裝置。
近年來,快閃記憶體的使用越來越普及,尤其在各類行動裝置上。原因在於,快閃記憶體相較於其他的傳統儲存裝置,具有高速、高密度與非揮發性等特點。然而,儘管快閃記憶體具備上述的諸多優點,但仍存在不得不正視的缺陷,那就是使用壽命與資料保存性(Data Retention)。快閃記憶體中的記憶體單元(如,區塊),常會在一定次數的使用後,發生錯誤,造成無法讀出正確的資料。其中,造成錯誤的原因主要與抹寫次數(Program/Erase Cycles)與資料儲存時間有關。通常來說,快閃記憶體在歷經越多的抹寫次數後,或者是在長時間未更新儲存資料時,都有更高的錯誤發生機率。因此,控制器往往需要對快閃記憶體進行讀取重試,通過調整讀取電壓,來提高正確讀出資料的機會。但讀取重試的過程中,可能會根據上述的抹寫次數與資料儲存時間等變因,嘗試多種不同的讀取電壓組合,以正確讀出資料。然而,這樣的過程會增加延遲,降低讀取效率。
有鑑於上述所提到的問題,本發明提供一種快閃記憶體裝置的管理機制,從而改善讀取重試。其中,本發明之方法透過定期地刷新快閃記憶體中的記憶體單元中所儲存的資料,減少資料儲存時間對讀取重試的影響。也就是說,記憶體單元中的資料的儲存時間都在一個較小的範圍內變動,所以可以有效地降低讀取重試中讀取電壓的調整幅度。另一方面,本發明也加入錯誤檢查機制,針對錯誤率過高的記憶體單元,進行有條件的刷新,如此也可以減輕讀取重試操作的負擔。
本發明之一實施例提供一種管理一快閃記憶體模組中之複數個記憶體單元的方法。該方法包含:針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及根據該錯誤檢查的結果來執行一第二刷新操作。其中,執行該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立關聯該另一第一記憶體單元的一編程時戳。
本發明之一實施例提供一種管理一快閃記憶體之複數個記憶體單元的控制器。該控制器包含:一儲存單元以及一處理單元。該儲存單元用以儲存一程式碼。該處理單元耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作:針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及根據該錯誤檢查的結果來執行一第二刷新操作。其中,執行該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立關聯該另一第一記憶體單元的一編程時戳。
本發明之一實施例提供一種儲存裝置。該儲存裝置包含:一快閃記憶體模組與一控制器。該快閃記憶體模組包含複數個記憶體單元。該控制器用以對快閃記憶體模組進行存取,包含:一儲存單元與一處理單元。該儲存單元用以儲存一程式碼。該處理單元耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作:針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及根據該錯誤檢查的結果來執行一第二刷新操作,其中執行該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立關聯該另一第一記憶體單元的一編程時戳。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
此外,說明書內文給出的任何範例或者闡釋,不應被其中使用的任何詞彙所限制或者定義。相反地,這些範例或闡釋應當被認為是針對一個特定實施例進行描述的,並且僅作為說明。本領域的技術人員將可理解,這些範例或闡釋使用的任何詞彙將可涵蓋在本說明書中其他地方給出的其他實施例。其中,用以指出這些非限制性範例的用詞包括但不限於:「例如」、「如」、「舉例來說」、「在一個實施例中」以及在「在一範例中」。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可能代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。
第1圖爲本發明實施例的示意圖。如圖所示,儲存裝置100包含一控制器120與一快閃記憶體模組130,並且受控於一主機(host device)200(儲存裝置100甚至可能為主機200的一部份)。主機200可包含至少一個中央處理器(未顯示),並透過運作一個作業系統與應用程式來控制主機200的運作,並與周邊裝置(未顯示)連動。而存儲裝置100可用來提供存儲空間給主機200,儲存運作作業系統與各種應用程式所必需的程式碼與資料。主控裝置50的範例可包含:多功能移動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)以及個人電腦(personal computer)例如桌上型電腦或筆記型電腦。存儲裝置100的例子可包含(但不限於):固態硬碟(solid state drive, SSD)以及各種嵌入式(embedded)存儲裝置(例如符合UFS或EMMC規格的嵌入式存儲裝置)。
控制器120可用來存取(access)快閃記憶體模組130。在一個實施例中,快閃記憶體模組130可能是一立體NAND型快閃記憶體(3D NAND-type flash),並可包含至少一個快閃記憶體晶片(Flash memory chip),但此非本發明之限制。每一個快閃記憶體晶片包含複數個區塊(Block),控制器120對快閃記憶體模組130進行資料抹除的操作是以區塊爲單位來進行。另外,一個區塊可記錄特定數量的數據頁(Page),而控制器120對快閃記憶體模組130進行資料寫入的操作是以數據頁爲單位來進行寫入。
控制器120可能包含處理電路例如微處理器122、與儲存單元124,例如唯讀記憶體(Read Only Memory, ROM),唯讀記憶體124主要用來儲存程式碼與特定資料,而微處理器122則用來執行程式碼以控制對快閃記憶體模組130的存取。另外,控制器120可能還包含有其他的介面邏輯、控制邏輯以及緩衝器等等,用以輔助實現下文所述的各種操作。然而,為求說明書之簡潔,在此省略不提。本領域之技術人士在閱讀下文後,應能知曉如何運用已知的電路與文中揭露的電路元件與架構結合,從而實現本發明實施例中所提及的各式操作與相關應用。
在本實施例中,主機200可藉由傳送主控命令(host command)與相應的邏輯位址給控制器120,從而間接地存取儲存裝置100。控制器120接收主控命令(讀取或寫入命令)與邏輯地址,並且將主控命令轉譯成記憶體操作命令,再以操作命令控制快閃記憶體模組130讀取、寫入、編程(program)、或抹除(erase) 快閃記憶體模組130當中特定物理地址的記憶體單元(memory unit)或數據頁(page)、或區塊(block)。再者,控制器120也會執行程式碼1242C,以及/或參考儲存單元124內的資料,從而執行一連串的操作來實現下文中將提到的特定操作。
針對讀取操作,若控制器120無法在一次讀取操作中讀取出正確的資料時,控制器120便會讀取儲存在儲存單元124中的一個或多個讀取重試表,根據讀取重試表中記載的讀取電壓,控制快閃記憶體模組130以不同的讀取電壓來讀取資料,從而正確地讀出主機200所需要的資料。
在本發明中,控制器120對於讀取重試表的選擇與資料保存時間有關。控制器120會針對快閃記憶體模組130中每個第一記憶體單元的寫入操作所對應的時間資訊建立起對應該第一記憶體單元的編程時戳。當後續主機200發出讀取命令時,控制器120會根據編程時戳中的資訊與系統時間來選擇讀取重試表。在一實施例中,該第一記憶體單元可能為一超級區塊(super block)。
請進一步參考第2圖的範例。在該範例中,假設快閃記憶體模組130包含有複數個大小相同的第一記憶體單元UNT1、UNT2、…與UNTM(此非本發明之限制),並且,在使用歷程P1中有資料寫入第一記憶體單元UNT1、在使用歷程P2中有資料寫入第一記憶體單元UNT2,以及在使用歷程P3有資料寫入第一記憶體單元UNT3。那麼,如果在使用歷程P1內,當主機200發出讀取命令要求讀取第一記憶體單元UNT1中的資料時,則控制器120會使用重試表讀取RTAB1進行讀取。如果在使用歷程P2內,當主機200發出讀取命令要求讀取第一記憶體單元UNT1中的資料時,則控制器120會使用讀取重試表讀取RTAB2進行讀取,以及使用歷程P2內,針對第一記憶體單元UNT2中的資料的讀取操作會使用讀取重試表RTAB1進行讀取。如果在使用歷程P3內,主機200發出讀取命令要求讀取第一記憶體單元UNT1、第一記憶體單元UNT2與第一記憶體單元UNT3中的資料時,則控制器120會分別使用讀取重試表RTAB3、RTAB2與RTAB1進行讀取。其中,讀取重試表RTAB3、RTAB2與RTAB1依序適於讀取由長到短的資料保存時間的資料。
在一實施例中,為了減少讀取重試表的數量,從而提高讀取重試的效率,控制器120會針對快閃記憶體模組130中的第一記憶體單元對應的編程時戳進行全局性質且週期性進行的一第一刷新操作。請參考第3圖的範例以進一步了解本發明之第一刷新操作的運作原理以及影響。如圖所示,假設快閃記憶體130包含有第一記憶體單元UNT1~UNTM(此非本發明之限制)。而控制器120會在儲存單元124中維持一個刷新清單RLIST,記錄每個第一記憶體單元對應的編程時戳,並根據新舊來排序,進行刷新。
假設,在使用歷程P1中,第一記憶體單元UNT1與UNT4被寫入資料;使用歷程P2中,第一記憶體單元UNT2與UNT5中被寫入資料;以及使用歷程P3中,第一記憶體單元UNT6與UNT8中被寫入資料。接著,控制器120會在當前使用歷程中,對前一個使用歷程中有寫入資料的第一記憶體單元進行刷新,並且在當前使用歷程結束前完成。如本實施例中,控制器120在使用歷程P2中,控制器120根據刷新清單RLIST的順序,針對在前一個使用歷程P1中被寫入資料的第一記憶體單元UNT1與UNT4,進行刷新並在使用歷程P2結束前完成刷新操作;在使用歷程P3中,控制器120根據刷新清單RLIST的順序,針對在前一個使用歷程P2中被寫入資料的第一記憶體單元UNT2與UNT5,進行刷新並在使用歷程P3結束前完成刷新操作。在使用歷程P4中,控制器120根據刷新清單RLIST的順序,針對在前一個使用歷程P3中被寫入資料的第一記憶體單元UNT6與UNT8,進行刷新並在使用歷程P4結束前完成刷新操作。另外,由刷新操作新寫入的第一記憶單元也會在下一個使用歷程中被刷新。例如,假設在使用歷程P2中,針對第一記憶體單元UNT1與UNT4的刷新操作,將資料搬移到了第一記憶體單元UNT3與UNT7中,那麼在使用歷程P3中,第一記憶體單元UNT3與UNT7中也會被刷新,以此類推。
如此一來,快閃記憶體模組130中任何的第一記憶體單元的資料保存時間,最長只有兩個使用歷程的長度(假設刷新最遲在一個使用歷程結束時才完成)。因此,控制器120的儲存單元124中只需要儲存兩個讀取重試表RTAB1與RTAB2,就可以涵蓋所有因儲存時間過長而造成的讀取錯誤。舉例來說,如果在使用歷程P2中,打算讀取第一記憶體單元UNT1中的資料時,若此時第一記憶體單元UNT1中的資料已透過上述的刷新操作搬移到第一記憶體單元UNT3中時,則只需要用讀取重試表RTAB1進行讀取;同樣在使用歷程P2中,打算讀取第一記憶體單元UNT4中的資料時,若此時第一記憶體單元UNT4中的資料未被刷新,則需要用讀取重試表RTAB2進行讀取。
以上的第一刷新操作與讀取重試表的選擇可歸納為第4圖所示的流程,包含有以下步驟:
步驟410:針對每一第一記憶體單元的資料寫入時間建立一個對應於該第一記憶體單元的一編程時戳;
步驟420:根據該第一記憶體單元的該編程時戳,選擇相對應的一讀取重試表來對該第一記憶體單元進行一讀取操作;以及
步驟430:根據已寫入資料之第一記憶體單元的編程時戳,執行一第一刷新操作。
由於步驟410~430係由前述實施例中介紹的操作簡化而來,故此處不再重複說明。
在一實施例中,為了增加資料的可靠度,以及保證讀取重試的成功率,會在第一刷新操作之外,額外進行一個第二刷新操作。其中,第二刷新操作的流程如第5圖所示,包含有以下步驟:
步驟 510:針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及
步驟 520:當該錯誤檢查的結果指出一錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及
步驟 530:建立該另一第一記憶體單元的一編程時戳。
請進一步搭配第6圖的說明,以進一步了解本發明實施例如何進行第二刷新操作。如圖所示,快閃記憶體130可能包含有複數個大小相同的第二記憶體單元SUNT1、SUNT2、…與SNTQ。而每個記憶體單元SUNT1~ SUNTQ可能又包含有數量相同的第二子記憶體單元SSUNT1~ SSUNTZ。
在步驟510中,控制器120會對每個第二記憶體單元SUNT1~SUNTQ的至少一部份進行錯誤檢查。其中,在一實施例中,控制器120單元可能會從第二記憶體單元SUNT1選出第二子記憶體單元SSUNT1、在第二記憶體單元SUNT2選出第二子記憶體單元SSUNT2、….以及在第二記憶體單元SNTQ選出第二子記憶體單元SSUNTQ進行錯誤檢查。這樣的選取方式是為了避免造成取樣不均勻。例如,如果在每個第二記憶體單元中都選擇子記憶體單元SSUNT1或子記憶體單元SSUNTQ進行檢查,則可能因為相同編號的子記憶體單元在物理結構上接近,具有相似的物理特性,而忽略了其他物理特性不同且容易造成錯誤的記憶體單元。在一實施例中,第二記憶體單元SUNT1~ SUNTQ可能為超級數據頁(super pages),而第二子記憶體單元SSUNT1~SSNTZ可能為數據頁。
在本發明中,第二刷新操作是具有條件性,也就是只有當被選擇出的第二子記憶體單元無法通過錯誤檢查時,控制器120才會針對包含該第二記憶體單元進行第二刷新操作。在步驟520中,控制器120係透過檢查選擇出的第二子記憶體單元的錯誤位元數目是否超過一臨界值,來決定是否通過錯誤檢查。若當該錯誤檢查的結果指出一第二記憶體單元的至少一部份的錯誤位元數量大於一臨界值時,則控制器120讀取出包含該第二記憶體單元之第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元。亦即,若檢查出一個超級數據頁中某一個數據頁的錯誤位元數目過高,則會刷新包含該第二超級數據頁之一第一超級區塊的資料。並且在步驟530中,建立該第一記憶體單元的一編程時戳。此即為本發明的第二刷新操作。
在本實施例中,需要被刷新的第一記憶體單元會被***至控制器120之儲存單元124中所儲存的刷新清單RLIST的排序中。請參考第7圖的說明。如第7圖所示,控制器120原本按照刷新清單RLIST進行第一刷新操作,針對UNT2、UNT3、UNT4與UNT6的順序周期性地進行。並且,也同時週期性地進行錯誤檢查。然而,當控制器120在時間點T1中發現某個被檢查的第二記憶體單元SUNT2無法通過檢查時,則會在刷新清單RLIST中***相應的於包含有第二記憶體單元SUNT2的第一記憶體單元UNT3的刷新操作的第二刷新操作,並在時間點T2,執行針對第一記憶體單元UNT3中的資料的刷新操作。
如上所述,本發明通過了週期性對已寫入資料的第一記憶體單元(如:超級區塊)進行刷新。並且在每個使用歷程中,執行前一個使用歷程中有寫入的記憶體單元,從而有效地減少所需的讀取重試表的數量。並且,藉由週期性地選擇第二記憶體單元的部分(如:數據頁)進行錯誤檢查,從而更好地保證讀讀取重試表的數量在減少後仍能有效率地進行讀取重試。如此一來,便能改善讀取重試的效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100 儲存裝置
120 控制器
122 處理單元
124 儲存單元
130 快閃記憶體模組
130_1~130_N 快閃記憶體晶片
UNT1~UNTM 第一記憶體單元
SUNT1~ SUNTQ 第二記憶體單元
SSUNT1~ SSUNTZ 第二子記憶體單元
410~430、510~530 步驟
第1圖繪示本發明實施例之相關儲存裝置、控制器與快閃記憶體模組之架構。
第2圖解釋本發明如何選擇讀取重試表。
第3圖解釋本發明如何針對第一記憶體單元進行第一刷新操作。
第4圖繪示本發明實施例中之讀取重試表的選擇與第一刷新操作的執行的相關流程圖。
第5圖繪示本發明實施例中之第二刷新操作的流程圖。
第6圖解釋本發明實施例中之錯誤檢查對於第二子記憶體單元的選擇方式。
第7圖解釋本發明實施例中之第一刷新操作與第二刷新操作的關聯。
510~530 步驟
Claims (15)
- 一種管理一快閃記憶體模組中之複數個記憶體單元的方法,包含: 針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及 根據該錯誤檢查的結果來執行一第二刷新操作,包含: 當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及 建立關聯該另一第一記憶體單元的一編程時戳。
- 如請求項1所述的方法,另包含: 針對每一第一記憶體單元的資料寫入時間建立一個對應於該第一記憶體單元的一編程時戳; 提供複數個讀取重試表,其中每一個讀取重試表分別對應該第一記憶體被寫入或刷新之後所經過的特定時間長度; 根據該第一記憶體單元的該編程時戳,選擇相對應的一讀取重試表來對該第一記憶體單元進行一讀取操作;以及 根據已寫入資料之第一記憶體單元的編程時戳,執行一第一刷新操作。
- 如請求項2所述的方法,其中執行該第一刷新操作的步驟包含: 針對在一第一使用歷程中已寫入資料的複數個第一記憶體單元,在一第二使用歷程中進行該第一刷新操作,其中該第二使用歷程在該第一使用歷程之後,且該第一刷新操作係在該第二使用歷程中完成針對所有該第一使用歷程中已寫入資料之第一記憶體單元的刷新。
- 如請求項3所述的方法,其中選擇相對應的該讀取重試表的步驟包含: 針對在該第一使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第一讀取重試表;以及 針對在該第二使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第二讀取重試表。
- 如請求項2所述的方法,其中執行該第一刷新操作的部分包含: 針對每一個第一記憶體單元: 讀取出該第一記憶體單元中所儲存之資料,並將該資料寫入至另一第一記憶體單元;以及 建立該另一第一記憶體單元的一編程時戳。
- 一種管理一快閃記憶體之複數個記憶體單元的控制器,包含: 一儲存單元,用以儲存一程式碼以及複數個讀取重試表,其中每一個讀取重試表分別對應記憶體單元被寫入或刷新之後所經過的特定時間長度;以及 一處理單元,耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作: 針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及 根據該錯誤檢查的結果來執行一第二刷新操作,其中該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含的錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立該另一第一記憶體單元的一編程時戳。
- 如請求項6所述的控制器,其中該處理單元執行該程式碼,從而進行以下操作: 針對每一第一記憶體單元的資料寫入時間建立一個對應於該第一記憶體單元的一編程時戳; 根據該第一記憶體單元的該編程時戳,選擇相對應的一讀取重試表來對該第一記憶體單元進行一讀取操作;以及 根據已寫入資料之第一記憶體單元的編程時戳,執行一第一刷新操作。
- 如請求項7所述的控制器,其中該處理單元執行該程式碼,以針對在一第一使用歷程中有寫入的複數個第一記憶體單元,在一第二使用歷程中進行該第一刷新操作,其中該第二使用歷程在該第一使用歷程之後,且該第一刷新操作係在該第二使用歷程中完成針對所有該第一使用歷程中已寫入資料之第一記憶體單元的刷新。
- 如請求項8所述的控制器,其中該處理單元執行該程式碼以: 針對在該第一使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第一讀取重試表;以及 針對在該第二使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第二讀取重試表。
- 如請求項7所述的控制器,其中該處理單元執行該程式碼以針對每一個第一記憶體單元:讀取出該第一記憶體單元中所儲存之資料,並將該資料寫入至另一第一記憶體單元;以及建立該另一第一記憶體單元的一編程時戳。
- 一種儲存裝置,包含: 一快閃記憶體模組,包含複數個記憶體單元;以及 一控制器,用以對該快閃記憶體模組進行存取,包含: 一儲存單元,用以儲存一程式碼以及複數個讀取重試表,其中每一個讀取重試表分別對應記憶體單元被寫入或刷新之後所經過的特定時間長度;以及 一處理單元,耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作: 針對已寫入資料之第二記憶體單元中每一者的至少一部份進行一錯誤檢查;以及 根據該錯誤檢查的結果來執行一第二刷新操作,其中該第二刷新操作包含:當該錯誤檢查的結果指出一第二記憶體單元中的至少一部份所包含的錯誤位元數量大於一臨界值時,讀取出包含該第二記憶體單元之一第一記憶體單元中所儲存之資料,並將該資料校正後寫入至另一第一記憶體單元;以及建立該另一第一記憶體單元的一編程時戳。
- 如請求項11所述的儲存裝置,其中該控制器: 針對每一第一記憶體單元的資料寫入時間建立一個對應於該第一記憶體單元的一編程時戳; 根據該第一記憶體單元的該編程時戳,選擇相對應的一讀取重試表來對該第一記憶體單元進行一讀取操作;以及 根據已寫入資料之第一記憶體單元的編程時戳,執行一第一刷新操作。
- 如請求項12所述的儲存裝置,其中該控制器針對在一第一使用歷程中已寫入資料的複數個第一記憶體單元,在一第二使用歷程中進行該第一刷新操作,其中該第二使用歷程在該第一使用歷程之後,且該第一刷新操作係在該第二使用歷程中完成針對所有該第一使用歷程中已寫入資料之第一記憶體單元的刷新。
- 如請求項13所述的儲存裝置,其中該控制器針對在該第一使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第一讀取重試表;以及針對在該第二使用歷程中被寫入資料的第一記憶體單元的讀取,選擇一第二讀取重試表。
- 如請求項12所述的儲存裝置,其中該控制器針對每一個第一記憶體單元:讀取出該第一記憶體單元中所儲存之資料,並將該資料寫入至另一第一記憶體單元;以及建立該另一第一記憶體單元的一編程時戳,從而完成該第一刷新操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109107348A TWI718889B (zh) | 2019-01-10 | 2019-01-10 | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109107348A TWI718889B (zh) | 2019-01-10 | 2019-01-10 | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202105394A TW202105394A (zh) | 2021-02-01 |
TWI718889B true TWI718889B (zh) | 2021-02-11 |
Family
ID=75745400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109107348A TWI718889B (zh) | 2019-01-10 | 2019-01-10 | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI718889B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1110958C (zh) * | 1995-02-28 | 2003-06-04 | 通用仪器公司 | 视频数字信号解压缩处理方法 |
US6798418B1 (en) * | 2000-05-24 | 2004-09-28 | Advanced Micro Devices, Inc. | Graphics subsystem including a RAMDAC IC with digital video storage interface for connection to a graphics bus |
CN101124554A (zh) * | 2004-12-16 | 2008-02-13 | 桑迪士克股份有限公司 | 带多流更新跟踪的非易失性存储器和方法 |
TW200845007A (en) * | 2007-01-31 | 2008-11-16 | Sandisk Il Ltd | Flash memory with improved programming precision |
US8983902B2 (en) * | 2010-12-10 | 2015-03-17 | Sap Se | Transparent caching of configuration data |
US10163471B2 (en) * | 2017-03-30 | 2018-12-25 | Intel Corporation | Time tracking with trits |
US20180373625A1 (en) * | 2017-06-22 | 2018-12-27 | Macronix International Co., Ltd. | Memory device and associated control method |
-
2019
- 2019-01-10 TW TW109107348A patent/TWI718889B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1110958C (zh) * | 1995-02-28 | 2003-06-04 | 通用仪器公司 | 视频数字信号解压缩处理方法 |
US6798418B1 (en) * | 2000-05-24 | 2004-09-28 | Advanced Micro Devices, Inc. | Graphics subsystem including a RAMDAC IC with digital video storage interface for connection to a graphics bus |
CN101124554A (zh) * | 2004-12-16 | 2008-02-13 | 桑迪士克股份有限公司 | 带多流更新跟踪的非易失性存储器和方法 |
TW200845007A (en) * | 2007-01-31 | 2008-11-16 | Sandisk Il Ltd | Flash memory with improved programming precision |
US8983902B2 (en) * | 2010-12-10 | 2015-03-17 | Sap Se | Transparent caching of configuration data |
US10163471B2 (en) * | 2017-03-30 | 2018-12-25 | Intel Corporation | Time tracking with trits |
US20180373625A1 (en) * | 2017-06-22 | 2018-12-27 | Macronix International Co., Ltd. | Memory device and associated control method |
Also Published As
Publication number | Publication date |
---|---|
TW202105394A (zh) | 2021-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10963339B2 (en) | Data storage device and operating method thereof | |
US9703698B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI566253B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
CN109062827B (zh) | 闪存控制装置、闪存控制***以及闪存控制方法 | |
TWI690928B (zh) | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 | |
US11630768B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
US20170162267A1 (en) | Data Storage Device and Data Maintenance Method | |
US10902928B2 (en) | Memory system, operation method thereof, and nonvolatile memory device | |
US20190065361A1 (en) | Method for writing data into flash memory module and associated flash memory controller and electronic device | |
US11068201B2 (en) | Flash memory controller, method for managing flash memory module and associated electronic device | |
KR20160110774A (ko) | 메모리 장치 및 이를 포함하는 시스템 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI442406B (zh) | 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器 | |
KR20150095442A (ko) | 비휘발성 메모리 장치 및 이의 동작 방법 | |
US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
TWI644215B (zh) | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 | |
TWI718889B (zh) | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 | |
TW202028984A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR20140104829A (ko) | 멀티 레벨 셀 비휘발성 메모리 시스템 | |
US9229798B2 (en) | Error handling method, memory storage device and memory controlling circuit unit | |
US20230031193A1 (en) | Memory system and operating method thereof | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US20230042340A1 (en) | Memory device | |
US20220310168A1 (en) | Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device |