TW201611034A - 非揮發性記憶體裝置的操作方法 - Google Patents
非揮發性記憶體裝置的操作方法 Download PDFInfo
- Publication number
- TW201611034A TW201611034A TW104138237A TW104138237A TW201611034A TW 201611034 A TW201611034 A TW 201611034A TW 104138237 A TW104138237 A TW 104138237A TW 104138237 A TW104138237 A TW 104138237A TW 201611034 A TW201611034 A TW 201611034A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical
- physical block
- volatile memory
- page
- Prior art date
Links
Abstract
一種非揮發性記憶體裝置的操作方法,非揮發性記憶體裝置的非揮發性記憶體模組包括至少一實體塊。此操作方法包括:將資料寫入所述至少一實體塊中;判斷條件是否成立,其中所述條件包括所述資料的多個邏輯位址為連續且所述資料位在同一個實體塊的多個連續頁面中;以及當所述條件成立時,將所述資料的起始邏輯位址、所述資料的起始實體位址與所述資料的資料長度分別記錄在執行長度映射表(run-length mapping table)中的邏輯位址欄位、實體位址欄位以及長度欄位。
Description
本發明是有關於一種操作方法,且特別是有關於一種非揮發性記憶體裝置的操作方法。
一般使用反及快閃(NAND flash)記憶體做為資料儲存媒介的硬碟,例如固態硬碟(solid state disk,SSD)、嵌入式快閃記憶卡(Embedded MultiMediaCard,eMMC)或行動硬碟等,通常包括多個實體塊(block),且每一個實體塊會包括多個頁面(page)。由於一個被寫滿的實體塊在被抹除之前無法重複地再被寫入資料,因此當一個主機要更新實體塊中的資料時,則會先將新資料寫入至另一個未被寫滿的實體塊(暫存區塊)。此另一個實體塊會儲存有效資料,而原先的實體塊中儲存的待更新的資料(原始資料)則會被無效化並留存於原本的實體塊中。因此,當暫存區塊的空間已不夠用時,這反及快閃記憶體便需要對原始資料與新資料進行重整。
重整是將一個或是多個實體塊上的有效資料搬移或複製
至一個備用的實體塊,藉以讓一個被寫滿有效及無效資料的實體塊可以被抹除並於之後用以儲存其他資料。所述重整操作為本領域之技術人員所熟知,故不再贅述。然而,當這些實體塊被重整時,倘若有斷電事件發生,則這備用的實體塊中可能會有已被寫入重整資料卻尚未完成重整操作的頁面,而這些頁面可能因此斷電事件而造成資料損毀或錯誤。因此若實體塊被重整時有斷電事件發生,則硬碟可能會損失部份的資料。
另一方面,一般來說,硬碟(如:固態硬碟、eMMC等)在使用時,需要使用信息表來記錄邏輯位址至實體位址的映射關係。而在不斷執行主機的眾多資料存取指令或者重整指令的過程中,由於邏輯位址與實體位址之對應關係可被對應地改變,因此信息表的內容可被不斷地更新。然而,隨著固態硬碟所寫入的資料增多,信息表所記錄的內容也會隨著增加。因此,傳統固態硬碟需要使用非常大的儲存空間來放置此信息表。
此外,上述的硬碟可能具有單層記憶胞(Single Level Cell,SLC)NAND型快閃記憶體、多層記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體、三層記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體或其他型快閃記憶體。其中,三層記憶胞快閃記憶體具有較高的位元錯誤率。
本發明提供一種非揮發性記憶體裝置的操作方法,其可
有效減少位址映射表(address mapping table)的資料量。
本發明實施例另提出一種非揮發性記憶體裝置的操作方法,非揮發性記憶體裝置的非揮發性記憶體模組包括至少一實體塊。此操作方法包括:將資料寫入所述至少一實體塊中;判斷條件是否成立,其中所述條件包括所述資料的多個邏輯位址為連續且所述資料位在同一個實體塊的多個連續頁面中;以及當所述條件成立時,將所述資料的起始邏輯位址、所述資料的起始實體位址與所述資料的資料長度分別記錄在執行長度映射表(run-length mapping table)中的邏輯位址欄位、實體位址欄位以及長度欄位。
基於上述,在將資料寫入非揮發性記憶體模組的實體塊時,記憶體控制器可透過執行長度映射表,來記錄具有連續邏輯位址且位在同一個實體塊的多個連續頁面中的重整資料,以有效減少位址映射表的資料量。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧非揮發性記憶體裝置
10‧‧‧主機
110‧‧‧記憶體控制器
120‧‧‧非揮發性記憶體模組
122、124‧‧‧實體塊
122p、124p‧‧‧頁面
202‧‧‧微處理單元
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧錯誤檢查與校正單元
D0‧‧‧第一重整資料
D1‧‧‧重整資料
D2‧‧‧第二重整資料
P1-0~P1-(x+1)、P2-0~P2-y‧‧‧頁面
n1、n1+1~n1+4、n1、n2、n3、n4、n5‧‧‧邏輯頁位址
m1、m2、m3、m4、m5‧‧‧實體塊位址
k1、k1+1~k1+4、k2、k3、k4、k5‧‧‧實體頁位址
S302~S308‧‧‧非揮發性記憶體裝置的操作方法各步驟
S602~S608、S801~S806‧‧‧操作方法各步驟
圖1是依照本發明之一實施例所繪示的非揮發性記憶體裝置的方塊示意圖。
圖2是依照本發明之一實施例所繪示圖1的記憶體控制器的方塊示意圖。
圖3是依照本發明一實施例所繪示的非揮發性記憶體裝置的操作方法流程示意圖。
圖4與5A至圖5D為說明非揮發性記憶體裝置進行重整的示意圖。
圖6是依照本發明一實施例所繪示的非揮發性記憶體裝置的操作方法流程示意圖。
圖7A是依照本發明一實施例所繪示的第一重整資料的邏輯位址資訊與實體位址資訊的示意圖。
圖7B是依照本發明一實施例所繪示的執行長度映射表的示意圖。
圖7C是依照本發明一實施例所繪示的頁映射表的示意圖。
圖8是依照本發明一實施例所繪示的操作方法流程示意圖。
圖1是依照本發明之一實施例所繪示的非揮發性記憶體裝置的方塊示意圖。請參照圖1,非揮發性記憶體裝置100例如是以快閃記憶體(flash memory)作為儲存媒介的快閃記憶體儲存裝置,例如固態硬碟(Solid State Disk,SSD)、嵌入式快閃記憶卡(Embedded MultiMediaCard,eMMC)或行動硬碟等硬碟。在一些應用情境中,非揮發性記憶體裝置100可做為儲存放置各種快取資料(cache data)的快取空間(cache space)。在另一些應用情境中,非揮發性記憶體裝置100可做為大容量儲存設備(mass
storage device)。此外,本實施例的非揮發性記憶體裝置100可耦接於主機10,以供主機10存取資料,其中主機10可以是個人電腦、筆記型電腦、平板電腦、智慧型手機或是其他計算平台/裝置。非揮發性記憶體裝置100可設置於主機10的內部,並與主機10電性連接。或者,非揮發性記憶體裝置100也可以利用外接的方式與主機10電性連接,例如,透過通用序列匯流排(Universal Serial Bus,USB)等各式匯流排與主機10電性連接等等,本實施例不對其加以限制。
非揮發性記憶體裝置100包括一個記憶體控制器110以及一或多個非揮發性記憶體模組120,其中記憶體控制器110耦接於非揮發性記憶體模組120。本實施例並不限制非揮發性記憶體模組120的數量。記憶體控制器110可以用硬體型式或韌體型式實作之。例如,記憶體控制器110可能包括多個邏輯閘。記憶體控制器110可根據主機10所下達的指令在非揮發性記憶體模組120中進行資料的寫入、讀取、抹除、重整與/或其他運作。
非揮發性記憶體模組120具有至少一實體塊以儲存主機10所寫入的資料。為了方便說明,在此以非揮發性記憶體模組120所包括的第一實體塊122與第二實體塊124為例,但本實施例並不限制實體塊的數量。詳細而言,第一實體塊122具有至少一頁面122p。第二實體塊124具有至少一頁面124p,其中屬於同一個實體塊的不同頁面可被獨立地寫入,且屬於同一個實體塊的所有頁面可以被同時地抹除。舉例而言,每一實體塊可由128個頁面
所組成,但不限於此。在其他實施例中,每一實體塊也可由64個頁面、256個頁面或其他任意個頁面所組成。在本實施例中,非揮發性記憶體模組120例如是單層記憶胞(Single Level Cell,SLC)NAND型快閃記憶體、多層記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體、三層記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體或其他類型快閃記憶體。其中,SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料,MLC NAND型快閃記憶體的每個記憶胞可儲存2個位元的資料,而TLC NAND型快閃記憶體的每個記憶胞可儲存3個位元的資料。
圖2是依照本發明之一實施例所繪示圖1的記憶體控制器110的方塊示意圖。請同時參照圖1與圖2,記憶體控制器110包括微處理單元202、主機介面204、記憶體介面206、緩衝記憶體208以及錯誤檢查與校正單元210。
微處理單元202用以控制記憶體控制器110的整體運作。例如,微處理單元202可以控制記憶體控制器110以執行本實施例的操作方法(容後詳述),來對非揮發性記憶體裝置100中的非揮發性記憶體模組120進行重整,或者將資料寫入非揮發性記憶體模組120中。此外,記憶體控制器110會維護一個或多個邏輯轉實體位址(logical to physical address)的信息表(或稱為位址映射表),以記錄資料在主機10的邏輯位址與在非揮發性記憶體模組120中實體位址的映射關係。藉此,當主機10欲存取某一邏輯位址時,微處理單元202便可根據所述信息表取得對應的
實體位址,並於非揮發性記憶體模組120中的所述實體位址上存取資料。
主機介面204是耦接於微處理單元202,並且用以接收主機10所傳送的指令與資料。也就是說,主機10所傳送的指令與資料會透過主機介面204來傳送至微處理單元202。在本實施例中,主機介面204例如是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準的介面電路。然而,必須瞭解的是本發明不限於此。例如在其他實施例中,主機介面204亦可以是相容於並列先進附件(Parellel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device ElectronicS,IDE)標準或其他適合的資料傳輸標準的介面電路。
記憶體介面206耦接於微處理單元202並且用以存取非揮發性記憶體模組120。記憶體介面206可以將資料信號轉換為非
揮發性記憶體模組120所能接受的格式。也就是說,微處理單元202可以將欲寫入至非揮發性記憶體模組120的資料經由記憶體介面206儲存至非揮發性記憶體模組120中。
緩衝記憶體208耦接於微處理單元202並且用以暫存來自於主機10的資料與指令,或是儲存微處理單元202對非揮發性記憶體模組120的管理訊息(例如上述的信息表),或是暫存來自於非揮發性記憶體模組120的資料等。在此,緩衝記憶體208例如是動態隨機存取記憶體(dynamic random access memory,DRAM)、靜態隨機存取記憶體(static random access memory,SRAM)或是其他揮發性記憶體(volatile memory)等。
錯誤檢查與校正單元210耦接於微處理單元202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當微處理單元202從主機10中接收到寫入指令時,錯誤檢查與校正單元210會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且微處理單元202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至非揮發性記憶體模組120中。之後,微處理單元202從非揮發性記憶體模組120中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,而錯誤檢查與校正單元210會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
底下即搭配上述非揮發性記憶體裝置100來說明本實施例的操作方法各步驟。圖3是依照本發明一實施例所繪示的記憶
體裝置100的操作方法流程圖。圖4以及圖5A至圖5D為說明非揮發性記憶體裝置100進行重整的示意圖。請參照圖1、圖3與圖4,於步驟S302,當記憶體控制器110對非揮發性記憶體裝置100進行重整時,記憶體控制器110將已完成重整的第一重整資料寫入第一實體塊122的至少一個頁面122p。例如在圖4中,以標示為P1-0~P1-1的所述頁面122p來存放已完成重整的重整資料D0,而以標示為P1-2~P1-x的所述頁面122p來存放已完成重整的重整資料D1。重整資料D0與D1依序被寫入的所述至少一個頁面122p,其中x為正整數。值得注意的是,對於多層記憶胞(Multi Level Cell,MLC)及三層記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體而言,其具有成對頁面(Pair Page)與多頁面於同一個記憶胞的特性,即一個記憶胞中具有對應的兩個頁面或三個頁面的位元資料。另外,對於同一實體塊而言,這些成對頁面可能是連續或是不連續,其端視不同的設計而定。例如在圖4中,假設標示為P1-x及P1-(x-1)的所述頁面122p對應同一個記憶胞,則此為連續的成對頁面,而假設標示為P1-x及P1-(x-2)的所述頁面122p對應同一個記憶胞,則此為不連續的成對頁面。
此外,在本實施例中,若沒有發生斷電事件,則在將重整資料D1寫入圖4中標示為P1-2至P1-x的這些頁面122p之後,記憶體控制器110可從重整資料D1的最後一個頁面122p所接續的頁面,即自標示為P1-(x+1)的這個頁面122p開始,繼續儲存下一筆重整資料。假設在將所述下一筆重整資料寫入第一實體塊122
的過程中發生斷電事件,使得所述下一筆重整資料未能完整寫入第一實體塊122。重新上電後,記憶體控制器110可再一次將所述下一筆重整資料寫入第一實體塊122,以及進行後續資料重整操作。然而,在沒有應用本實施例所述技術的情況下,重新上電後在將所述下一筆重整資料再一次寫入第一實體塊122的過程中,所述下一筆重整資料可能會發生錯誤/逸失。例如所述下一筆重整資料未完整地寫入標示為P1-(x+1)的這個頁面122p便發生斷電事件,則重新上電後記憶體控制器110可根據標示為P1-0至P1-x的這個頁面122p中的對應資訊而判斷出重整資料D1已完整地寫入到標示為P1-x的這個頁面122p。在沒有應用本實施例所述技術的情況下,重新上電後標示為P1-(x+1)的這個頁面122p本身與它的成對頁面(Pair Page)的資料會發生錯誤/逸失。
值得一提的是,記憶體控制器110可提供一個信息表來記錄對應於第一重整資料D0的至少一實體位址信息,其中實體位址信息分別指出第一實體塊122中標示為P1-0~P1-1的所述頁面122p的實體位址。因此,當主機10欲存取第一實體塊122中的重整資料D0時,記憶體控制器110可根據信息表而在第一實體塊122中對重整資料D0進行存取。此外,當記憶體控制器110將已完成重整的重整資料D0寫入第一實體塊122的其中一個頁面122p時,記憶體控制器110可利用一個指標,來記錄目前已寫入已完成重整的重整資料D0的後一個頁面122p的實體位址。其中,指標例如是被儲存在記憶體控制器110的緩衝記憶體208(繪示於圖
2)中,且可根據記憶體控制器110所寫入的實體塊的頁面進行更新,以記錄相同或不同的實體塊中頁面的實體位址。
假設在未進行本發明之步驟S304~S308的情況下,當在斷電事件後再一次供電給非揮發性記憶體裝置100時,非揮發性記憶體裝置100可能會發生重整資料D1錯誤/逸失的問題。所述在未進行步驟S304~S308的情況下發生重整資料D1錯誤/逸失的原因說明如下。
舉例來說,如圖4所示,倘若記憶體控制器110將重整資料D1寫入第一實體塊122中標示為P1-x的頁面122p時有一斷電事件發生,使得記憶體控制器110已執行的寫入動作被中斷時,則除了正在寫入的頁面P1-x可能受損之外,也可能會連帶影響同一記憶胞中的其他成對頁面(Pair Page,例如標示為P1-(x-1)或P1-(x-2)的所述頁面122p),而導致一個或多個頁面資料錯誤。換言之,若重整過程中發生斷電事件,則對於MLC NAND型快閃記憶體而言,可能會產生連續或不連續成對頁面的資料錯誤。或者,對於TLC NAND型快閃記憶體而言,則可能會產生連續或不連續的三個頁面的資料錯誤。本發明實施例的步驟S304~S308可以有效防止在斷電與重新上電的過程中重整資料發生錯誤/逸失,以下即搭配圖5A至圖5D來進行說明。
請參照圖5A,記憶體控制器110將資料D0寫入第一實體塊122中標示為P1-0或P1-1的頁面122p,其中資料D0例如為已完成重整的重整資料。在將資料D0寫入第一實體塊122之後,
記憶體控制器110可繼續儲存下一筆重整資料至第一實體塊122。在此將假設在將所述下一筆重整資料寫入第一實體塊122的過程中發生斷電事件,使得所述下一筆重整資料未能完整寫入第一實體塊122。在於斷電事件後再一次供電給非揮發性記憶體裝置100時,如圖5B所示,記憶體控制器110可以進行步驟S304,以從多個自由實體塊選擇一個實體塊(例如第二實體塊124),並對第二實體塊124進行抹除程序。在此,記憶體控制器110例如是抹除第二實體塊124中所儲存的資料。例如,圖5B所繪示的第二實體塊124,表示於斷電事件後再一次供電給非揮發性記憶體裝置100時,第二實體塊124中所儲存的資料已被抹除。
於步驟S306,在上述抹除程序完成後,記憶體控制器110會搜尋在斷電事件之前所完整寫入第一實體塊122的有效資料。例如,在重新上電後,記憶體控制器110可根據頁面122p中的對應資訊,而判斷出這些重整資料D0在斷電事件之前已完整地寫入到第一實體塊122。因此,記憶體控制器110在步驟S306中將第一實體塊122在斷電事件之前所完整寫入的重整資料D0複製到第二實體塊124的至少一個頁面124p上,其中所述至少一個頁面124p對應於所述至少一個頁面122p。例如於圖5C,在第二實體塊124中標示為P2-0~P2-1的所述頁面124p來存放從第一實體塊122複製而來的重整資料D0。
於步驟S308,記憶體控制器110會繼續對非揮發性記憶體裝置100進行重整,並將再一次供電給非揮發性記憶體裝置100
之後所繼續重整的第二重整資料寫入第二實體塊124,而不寫入第一實體塊122。例如在圖5D中,在完成重整資料D0複製至第二實體塊124之後,記憶體控制器110可以繼續對非揮發性記憶體裝置100進行重整而獲得第二重整資料D2,並將第二重整資料D2存放在第二實體塊124中標示為P2-2~P2-y的所述頁面124p上,其中y為正整數。在一實施例中,等到第二實體塊124完成資料重整作業後,記憶體控制器110還可選擇性地對第一實體塊122進行抹除程序,來釋放第一實體塊122的儲存空間。
此外,記憶體控制器110還可更新信息表的實體位址信息。其中,實體位址信息分別指出對應於第二實體塊124中標示為P2-0~P2-y的頁面124p的實體位址。如此一來,記憶體控制器110便可根據信息表而存取非揮發性記憶體裝置100中經重整的資料(包括斷電事件前所重整的第一重整資料D0,以及斷電事件後再一次供電給非揮發性記憶體裝置100所重整的第二重整資料D2)。
在此說明的是,倘若記憶體控制器110在將第二重整資料D2存入至第二實體塊124的過程中,又有另一斷電事件發生而使記憶體控制器110正在進行的重整動作再一次中斷時,則記憶體控制器110會再一次執行與上述步驟S304~S306。亦即,在於斷電事件後再一次供電給記憶體裝置100時,記憶體控制器110會對另一個實體塊進行初始化程序,以及在上述初始化程序完成後,記憶體控制器110會再一次將第一實體塊122在斷電事件之
前所寫入的第一重整資料D0複製到所述另一個實體塊對應的頁面上。並且,記憶體控制器110會繼續對記憶體裝置100進行重整而獲得第二重整資料D2,並將所述而獲得第二重整資料D2寫入所述另一個實體塊。
基於上述,由於在於斷電事件後再一次供電給非揮發性記憶體裝置100時,記憶體控制器110會將已完成重整的第一重整資料D0從原先的第一實體塊122複製到已經過抹除程序的第二實體塊124。並且,記憶體控制器110可將電源恢復供應後所重整的第二重整資料D2(即接續第一重整資料D0後的重整資料)寫入第二實體塊124,而不寫入第一實體塊122。如此一來,當記憶體控制器110對非揮發性記憶體裝置100進行重整時,若有斷電事件又再次恢復供電的情況,則由於斷電事件之前的第一重整資料D0被安全的保留於第一實體塊122,因此記憶體控制器110可避免於第一實體塊122因斷電被破壞所造成的錯誤,藉以提高重整資料的正確性。
值得一提的是,上述記憶體控制器110在將已完成重整的重整資料寫入實體塊(例如實體塊122、124或其他實體塊)中的至少一頁面時,還可透過執行長度映射表(run-length mapping table),來記錄具有連續邏輯位址且位在同一個實體塊的多個連續頁面中的重整資料,以減少用來儲存重整資料的邏輯位址資訊以及實體位址資訊的空間。為了方便說明,底下以記憶體控制器110將已完成重整的重整資料寫入非揮發性記憶體模組120的至少一
實體塊時的步驟為例,來說明將重整資料寫入實體塊中的操作方法。
圖6是依照本發明一實施例所繪示的非揮發性記憶體裝置的操作方法流程示意圖。請同時參照圖1與圖6,於步驟S602,記憶體控制器110將重整資料寫入非揮發性記憶體模組120的至少一實體塊,例如是第一實體塊122或第二實體塊124。於步驟S604,記憶體控制器110會判斷第一條件是否成立,其中第一條件包括所述重整資料的多個邏輯位址為連續且所述重整資料位在同一個實體塊的多個連續頁面中。舉例來說,若記憶體控制器110將具有多個連續邏輯位址的重整資料寫入非揮發性記憶體模組120的第一實體塊122的多個連續頁面中,則第一條件成立。然而,若記憶體控制器110將重整資料寫入非揮發性記憶體模組120的第一實體塊122的非連續頁面,則第一條件不成立。
當第一條件成立時,則如步驟S606所示,記憶體控制器110會將重整資料的起始邏輯位址、重整資料的起始實體位址與重整資料的資料長度分別記錄在執行長度映射表中的邏輯位址欄位、實體位址欄位以及長度欄位,其中記憶體控制器110可根據重整資料的起始實體位址與終止實體位址而得知重整資料的資料長度。
圖7A是依照本發明一實施例所繪示被寫入非揮發性記憶體模組120的重整資料的邏輯位址資訊與實體位址資訊的關係示意圖。圖7B是依照本發明一實施例所繪示的執行長度映射表的
示意圖。在圖7B所示實施例中,執行長度映射表的邏輯位址欄位為邏輯頁位址(logical page address)欄位,而執行長度映射表中的實體位址欄位包括實體塊位址(physical block address)欄位以及實體頁位址(physical page address)欄位。從圖7A的邏輯位址資訊可知重整資料的邏輯頁位址為連續,例如邏輯位址為n1~n1+4。並且,根據圖7A的實體位址資訊可知重整資料是位在同一個實體塊的多個連續頁面中,例如實體塊位址皆是為m1,而實體頁位址為k1~k1+4。記憶體控制器110可根據此重整資料的起始實體頁位址k1與終止實體頁位址k1+4而得知此重整資料的資料長度為5。
因此,記憶體控制器110在步驟S604會判斷圖7A所例舉的重整資料符合第一條件,所以記憶體控制器110在步驟S606將此重整資料的位址映射關係記錄在執行長度映射表中。例如圖7B所示,記憶體控制器110會將此重整資料的起始邏輯頁位址(在此例為n1)、實體塊位址(在此例為m1)、起始實體頁位址(在此例為k1)與資料長度(在此例為5)分別記錄在執行長度映射表中的邏輯頁位址欄位、實體塊位址欄位、實體頁位址欄位以及長度欄位。
另一方面,當圖6的步驟S604判斷第一條件不成立時,則記憶體控制器110會進行步驟S608。如步驟S608所示,記憶體控制器110會將重整資料的所述多個邏輯位址與多個實體位址分別記錄在頁映射表(page mapping table)中的邏輯位址欄位與實
體位址欄位。例如,圖7C是依照本發明一實施例所繪示的頁映射表的示意圖。在圖7C的頁映射表中,重整資料位在不同實體塊的非連續頁面中,其中邏輯位址欄位的邏輯頁位址欄位記錄了重整資料的邏輯頁位址為n1、n2、n3、n4與n5,實體位址欄位的實體塊位址欄位記錄了重整資料的實體塊位址為m1、m2、m3、m4與m5,而實體位址欄位的實體頁位址欄位記錄了重整資料的實體頁位址為k1、k2、k3、k4與k5。
另需說明的是,上述圖6的操作方法,不限定應用於重整資料的寫入操作。例如,當記憶體控制器110從主機10接收一資料寫入指令而對應地將一筆資料寫入非揮發性記憶體模組120後,記憶體控制器110也可根據上述圖6所示第一條件來進行判斷,以選擇利用執行長度映射表或者頁映射表來記錄資料的邏輯位址與實體位址的映射關係資訊。亦即,當記憶體控制器110將一筆資料寫入非揮發性記憶體模組120的至少一實體塊後,若圖6的步驟S604判斷第一條件成立,則記憶體控制器110會選擇利用執行長度映射表來記錄資料的邏輯位址與實體位址的映射關係資訊。然而,若圖6的步驟S604判斷第一條件不成立時,則記憶體控制器110會選擇利用頁映射表來記錄資料的邏輯位址與實體位址的映射關係資訊。
基於上述,本實施例的記憶體控制器110在將資料寫入非揮發性記憶體模組120的至少一實體塊時,可透過執行長度映射表,來記錄具有連續邏輯位址且位在同一個實體塊的多個連續
頁面中的重整資料,以有效儲存對應於重整資料的邏輯位址資訊以及實體位址資訊。藉此,映射表的資料量可以大幅減少。
值得一提的是,本實施例的非揮發性記憶體模組120可具有操作於單層記憶胞(Single Level Cell,SLC)模式的多個實體塊以及操作於三層記憶胞(Trinary Level Cell,TLC)模式的多個實體塊。在將資料寫入TLC模式實體塊的操作過程中,所述資料會被暫存於SLC模式的實體塊中,而不會直接寫入TLC模式實體塊。當在非揮發性記憶體模組120內操作於SLC實體塊之中的三個實體塊的所有頁面均被使用時,也就是所述三個SLC實體塊的暫存空間均被用盡時,所述三個SLC實體塊會進行重整,以將所述三個SLC實體塊的資料重整/搬移至非揮發性記憶體模組120內操作於TLC模式的實體塊中。在此,假設第一實體塊122與第二實體塊124是操作於TLC模式,則當非揮發性記憶體模組120內操作於SLC模式的實體塊之中的三個實體塊的所有頁面均被使用時,記憶體控制器110還可對所述三個SLC實體塊進行重整,以將所述三個SLC實體塊的資料重整至非揮發性記憶體模組120內操作於TLC模式的第一實體塊122或第二實體塊124中。底下再舉一實施例來進行說明。
圖8是依照本發明一實施例所繪示的操作方法流程圖。底下即搭配上述非揮發性記憶體裝置100來說明本實施例的操作方法各步驟。請參照圖1與圖8,記憶體控制器110在步驟S801中將資料寫入操作於SLC模式的實體塊其中之一。於步驟S802,
記憶體控制器110判斷是否需要將SLC實體塊的資料搬移至TLC實體塊。當在非揮發性記憶體模組120內操作於SLC模式的多個實體塊之中的三個實體塊的所有頁面均被使用時,也就是步驟S802的判斷結果為「SLC實體塊的資料需要搬移至TLC實體塊」,記憶體控制器110會接著進行步驟S806。在步驟S806中,記憶體控制器110依據一第二條件而決定對所述三個SLC實體塊進行「內部重整」或是「外部重整」,以將所述三個SLC實體塊的資料重整至非揮發性記憶體模組120內操作於TLC模式的實體塊中的一個擇定實體塊。反之,當所述三個SLC實體塊尚有頁面未被使用時,也就是步驟S802的判斷結果為「SLC實體塊的資料尚不需搬移至TLC實體塊」,記憶體控制器110會返回至步驟S801,以等待下一筆資料。
於圖8所示實施例中,步驟S806包含子步驟S804、S803與S805。於步驟S804,記憶體控制器110會判斷所述第二條件是否成立。此第二條件包括:非揮發性記憶體模組120內操作於TLC模式的實體塊中任一者的抹除(erasing)次數已達第一門檻值,或是非揮發性記憶體模組120內操作於TLC模式的實體塊中任一者的位元錯誤率已達第二門檻值。例如,非揮發性記憶體模組120可以記錄操作於TLC模式的實體塊的抹除次數。並且/或者,記憶體控制器110可以記錄這些TLC實體塊各自的位元錯誤率。例如,當記憶體控制器110從TLC模式的實體塊中讀取資料時,可透過錯誤檢查與校正電路210對從TLC實體塊讀出的資料進行錯誤檢
查與校正(請參照於圖2的相關說明),藉以獲得所述操作於TLC模式的實體塊的位元錯誤率。
當步驟S804判斷所述第二條件成立時,則非揮發性記憶體裝置100進行所述外部重整,以將操作於SLC模式的所述三個實體塊的資料重整至操作於TLC模式的所述擇定實體塊。所述外部重整如步驟S805所示。於步驟S805中,非揮發性記憶體模組120內的所述三個SLC實體塊的資料會被讀取至非揮發性記憶體模組120外部的記憶體控制器110,並由所述記憶體控制器110對所述三個SLC實體塊的資料進行糾錯(例如進行錯誤檢查與校正),以及將糾錯後的資料從所述記憶體控制器110寫入操作於TLC模式的所述擇定實體塊中(例如寫入第一實體塊122或第二實體塊124中)。具體而言,記憶體控制器110中的錯誤檢查與校正電路210(繪示於圖2)可對所述三個SLC實體塊的資料進行糾錯,並且經糾錯的資料寫入操作於TLC模式的第一實體塊122或第二實體塊124,以降低TLC實體塊中資料的位元錯誤率。在完成所述外部重整後,所述三個SLC實體塊中的資料會被抹除以釋放記憶體空間。
另一方面,當步驟S804判斷所述第二條件不成立時,則非揮發性記憶體裝置100進行所述內部重整,以將操作於SLC模式的所述三個實體塊的資料重整至操作於TLC模式的所述擇定實體塊。與所述外部重整的差別在於,所述內部重整在將所述三個SLC實體塊的資料搬移至TLC實體塊的過程中並不會進行糾錯作
業。所述內部重整如步驟S803所示。於步驟S803中,由非揮發性記憶體模組120內部的控制電路將所述三個SLC實體塊的資料重整至操作於TLC模式的的所述擇定實體塊中(例如寫入第一實體塊122或第二實體塊124中)。具體來說,非揮發性記憶體模組120內部的此控制電路可執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,以控制所述三個SLC實體塊中的資料重整所分別寫入的操作於TLC模式的第一實體塊122或第二實體塊124。也就是說,控制電路可根據預先設定的指令,以自動將資料重整寫入對應的操作於TLC模式的實體塊。藉此,當進行資料重整以將所述三個SLC實體塊中的資料寫入TLC模式的實體塊時,所述內部重整可具有較高的資料寫入速度。在完成所述內部重整後,所述三個SLC實體塊中的資料會被抹除以釋放記憶體空間。
基於上述,非揮發性記憶體裝置100在步驟S804中可根據第二條件的成立與否,判斷是否透過非揮發性記憶體模組120外部的記憶體控制器110來對非揮發性記憶體模組120進行資料重整作業,例如將所述三個SLC實體塊中的資料搬移至TLC模式的實體塊。在資料重整作業中,記憶體控制器110在步驟S805中可以對寫入於TLC實體塊的資料進行糾錯,以降低TLC實體塊中資料的位元錯誤率。或者,非揮發性記憶體裝置100在步驟S803中透過非揮發性記憶體模組120內部的控制電路將資料直接從原本的實體塊搬移至TLC實體塊而不進行糾錯,以獲得較高的資料重整速度。藉此,本實施例可同時兼顧資料寫入的正確性以及資
料寫入速度。
綜上所述,在本實施例的非揮發性記憶體裝置與其操作方法中,當在於斷電事件後再一次供電給非揮發性記憶體裝置時,記憶體控制器110會將已完成重整的第一重整資料從第一實體塊複製到已經過抹除程序的第二實體塊,並且將電源恢復供應後所重整的第二重整資料接續第一重整資料寫入第二實體塊。如此一來,若有斷電事件又再次恢復供電的情況,則記憶體控制器110可避免於同一實體頁重複寫入重整資料所造成的錯誤,藉以提高重整資料的正確性。此外,在本實施例的操作方法中,記憶體控制器110在將資料寫入非揮發性記憶體模組120的至少一實體塊時,可透過執行長度映射表,來記錄具有連續邏輯位址且位在同一個實體塊的多個連續頁面中的資料,以減少映射表的資料量。在本實施例另一操作方法可判斷是否透過非揮發性記憶體模組120外部的記憶體控制器110來對寫入非揮發性記憶體模組120內TLC實體塊的資料進行糾錯,或者透過非揮發性記憶體模組120內部的控制電路將資料直接從原本的實體塊搬移至TLC實體塊而不進行糾錯。藉此,本實施例可同時兼顧資料寫入的正確性以及資料寫入速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S602~S608‧‧‧操作方法各步驟
Claims (3)
- 一種非揮發性記憶體裝置的操作方法,該非揮發性記憶體裝置的一非揮發性記憶體模組包括至少一實體塊,該操作方法包括:將一資料寫入所述至少一實體塊中;判斷一條件是否成立,其中該條件包括該資料的多個邏輯位址為連續且該資料位在同一個實體塊的多個連續頁面中;以及當該條件成立時,將該資料的起始邏輯位址、該資料的起始實體位址與該資料的資料長度分別記錄在一執行長度映射表中的一邏輯位址欄位、一實體位址欄位以及一長度欄位。
- 如申請專利範圍第1項所述的操作方法,其中該執行長度映射表中的該邏輯位址欄位為一邏輯頁位址欄位,該執行長度映射表中的該實體位址欄位包括一實體塊位址欄位以及一實體頁位址欄位。
- 如申請專利範圍第1項所述的操作方法,更包括:當該條件不成立時,將該資料的所述多個邏輯位址與該資料的多個實體位址分別記錄在一頁映射表中的一邏輯位址欄位與一實體位址欄位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104138237A TWI585778B (zh) | 2013-11-05 | 2013-11-05 | 非揮發性記憶體裝置的操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104138237A TWI585778B (zh) | 2013-11-05 | 2013-11-05 | 非揮發性記憶體裝置的操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201611034A true TW201611034A (zh) | 2016-03-16 |
TWI585778B TWI585778B (zh) | 2017-06-01 |
Family
ID=56085238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104138237A TWI585778B (zh) | 2013-11-05 | 2013-11-05 | 非揮發性記憶體裝置的操作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI585778B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614605B (zh) * | 2016-03-31 | 2018-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI652577B (zh) | 2017-06-19 | 2019-03-01 | 慧榮科技股份有限公司 | 資料儲存裝置及非揮發式記憶體操作方法 |
US10339046B1 (en) | 2018-03-09 | 2019-07-02 | Shenzhen Epostar Electronics Limited Co. | Data moving method and storage controller |
TWI812012B (zh) * | 2021-09-06 | 2023-08-11 | 日商鎧俠股份有限公司 | 資訊處理裝置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885778B (zh) | 2020-07-02 | 2024-03-08 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885779B (zh) | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113961140A (zh) | 2020-07-02 | 2022-01-21 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
TWI748835B (zh) * | 2020-07-02 | 2021-12-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299494A1 (en) * | 2005-12-22 | 2010-11-25 | Nxp B.V. | Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information |
CN102004701B (zh) * | 2009-08-28 | 2013-01-09 | 炬才微电子(深圳)有限公司 | 一种次级内存的分配方法和装置 |
TWI497293B (zh) * | 2009-12-17 | 2015-08-21 | Ibm | 固態儲存裝置內之資料管理 |
JP2011175615A (ja) * | 2010-01-27 | 2011-09-08 | Toshiba Corp | ホスト装置およびメモリデバイス |
US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
-
2013
- 2013-11-05 TW TW104138237A patent/TWI585778B/zh active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614605B (zh) * | 2016-03-31 | 2018-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI652577B (zh) | 2017-06-19 | 2019-03-01 | 慧榮科技股份有限公司 | 資料儲存裝置及非揮發式記憶體操作方法 |
US10229054B2 (en) | 2017-06-19 | 2019-03-12 | Silicon Motion, Inc. | Data storage device and method for operating nonvolatile memory |
US10339046B1 (en) | 2018-03-09 | 2019-07-02 | Shenzhen Epostar Electronics Limited Co. | Data moving method and storage controller |
TWI679537B (zh) * | 2018-03-09 | 2019-12-11 | 深圳大心電子科技有限公司 | 資料移動方法及儲存控制器 |
TWI812012B (zh) * | 2021-09-06 | 2023-08-11 | 日商鎧俠股份有限公司 | 資訊處理裝置 |
Also Published As
Publication number | Publication date |
---|---|
TWI585778B (zh) | 2017-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI520153B (zh) | 非揮發性記憶體裝置及其操作方法 | |
TWI585778B (zh) | 非揮發性記憶體裝置的操作方法 | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
TW201603030A (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI606458B (zh) | 非揮發性記憶體裝置的操作方法 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI564901B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI622044B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI814501B (zh) | 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元 |