TWI779707B - 用於快閃記憶體中進行故障區塊管理的方法與裝置 - Google Patents
用於快閃記憶體中進行故障區塊管理的方法與裝置 Download PDFInfo
- Publication number
- TWI779707B TWI779707B TW110124921A TW110124921A TWI779707B TW I779707 B TWI779707 B TW I779707B TW 110124921 A TW110124921 A TW 110124921A TW 110124921 A TW110124921 A TW 110124921A TW I779707 B TWI779707 B TW I779707B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- faulty
- blocks
- management table
- faulty block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種用於一快閃記憶體中管理區塊的方式,包含:檢測該快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表;在該故障區塊管理表中建立該用戶區域內的故障區塊與該預留區域中的良好區塊之間的映射關係;當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;在該故障區塊管理表中,建立該回收區塊與該用戶區域內的故障區塊的映射關係;以及基於該故障區塊管理表,將資料寫入至該回收區塊中。
Description
本發明係關於快閃記憶體,尤指一種用於快閃記憶體中進行故障區塊管理的方法與裝置。
快閃記憶體內部的儲存單元被劃分為許多相同尺寸的區塊,而儲存單元可能會因為製造上的瑕疵、運行過程中的抹除或是寫入操作受到干擾所產生的錯誤(Program-Disturb Errors)、讀取操作受到干擾所產生的錯誤(Read-Disturb Errors)、或者是電壓不穩定/異常斷電等偶然因素而發生異常。一旦一個區塊包含一個或多個異常的儲存單元時,這個區塊就被視為故障區塊(Bad Block)。通常來說,快閃記憶體的儲存單元可備被劃分為兩個區域,一個是用戶區域,另一個是預留區域,這兩個區域都包含有一定數量的區塊。主控端要求寫入的用戶資料會被保存在用戶區域的區塊中,而在運行的過程中,若用戶區域的區塊變成故障區塊時,則會使用預留區域的區塊來進行替換。然而,一旦預留區域中的區塊數量不足以供用戶區域的故障區塊進行替換時,則快閃記憶體無法被繼續使用。另一方面,快閃記憶體也透過特定的對照表來記錄故障區塊以及替換區塊之間的映射關係,一旦保存這些對照表的區塊也發生了故障,則上述的替換機制將變得不再可靠。
有鑑於此,本發明提供一種用於快閃記憶體的故障區塊管理機制。
在本發明的故障區塊管理機制中,當預留區域內的良好區塊使用殆盡時,將從用戶區域或者是預留區域中回收故障區塊。其中,本發明會對故障區塊進行抹除操作,一旦發現該故障區塊在抹除後呈現正常狀態,便視其先前的故障屬於偽故障,將其回收並重新使用。另一方面,本發明還提供一種用於保存故障區塊管理表的方法。在該方法中,使用了一定範圍內的區塊來保存以及備份故障區塊管理表,從而提高故障區塊管理表的保存安全性以及效率。由上可知,本發明可以對故障區塊提供更安全且更高效的管理,並且提高快閃記憶體的使用壽命。
本發明之一實施例提供一種用於一快閃記憶體中管理故障區塊的方式。該方法包含:檢測該快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表;在該故障區塊管理表中建立該用戶區域內的故障區塊與該預留區域中的良好區塊之間的映射關係;當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;在該故障區塊管理表中,建立該回收區塊與該用戶區域內的故障區塊的映射關係;以及基於該故障區塊管理表,將資料寫入至該回收區塊中。
本發明之一實施例提供一種用於一快閃記憶體的控制器,該控制器包含:一儲存單元以及一處理單元。該儲存單元用以儲存一程式碼。該處理單元用以執行該程式碼,當該處理單元執行該程式碼時,對該快閃記憶體進行以下操作:檢測該快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表;當偵測到該快閃記憶體中的一用戶區域內的一第一故障區塊時,在該故障區塊管理表中建立該第一故障區塊與該預留區域中的一良好區
塊之間的映射關係;當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;在該故障區塊管理表中,建立該回收區塊與該第一故障區塊的映射關係;以及基於該故障區塊管理表,將資料寫入於該回收區塊中。
本發明之一實施例提供一種用於一快閃記憶體中保存一故障區塊管理表的方式,該方法包含:在該快閃記憶體中內規劃一限制區域;以及根據一區塊需求數量搜尋該限制區域內的良好區塊,直到該故障區塊管理表可以同時被保存在滿足該區塊需求數量的良好區塊上,其中該限制區域具有的區塊數量大於該區塊需求數量。
本發明之一實施例提供一種用於一快閃記憶體的控制器,該控制器包含:一儲存單元以及一處理單元。該儲存單元用以儲存一程式碼。該處理單元用以執行該程式碼,當該處理單元執行該程式碼時,對該快閃記憶體進行以下操作:在該快閃記憶體中內規劃一限制區域;以及根據一區塊需求數量搜尋該限制區域的良好區塊,直到該故障區塊管理表可以同時被保存在滿足該區塊需求數量的良好區塊上,其中該限制區域具有的區塊數量大於該區塊需求數量。
10:電子裝置
50:主控裝置
52:處理器
100:儲存裝置
110:記憶體控制器
120:快閃記憶體
112:微處理器
112M:唯讀記憶體
114:控制邏輯模組
116:揮發性記憶體
118:傳輸介面電路
122:用戶區域
124:預留區域
126:限制區域
第1圖繪示了本發明實施例的儲存裝置以及相關應用架構的示意圖。
第2圖繪示了本發明實施例中故障區塊管理表的可用替換區塊列的建立流程。
第3圖繪示了本發明實施例中故障區塊管理表的映射關係建立流程。
第4圖繪示了本發明實施例中從預留區域中回收偽故障區塊的流程。
第5圖繪示了本發明實施例中從用戶區域中回收偽故障區塊的流程。
第6圖繪示了本發明實施例中管理故障區塊的簡化流程。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件或材料等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
說明書中提到的「一實施例」意味著該實施例所描述的特定特徵、結構或特性可能被包含於本發明的至少一個實施例中。因此,本說明書中各處出現的「在一實施例中」不一定意味著同一個實施例。此外,前述的特定特徵、結構或特性可以以任何合適的形式在一個或多個實施例中結合。
第1圖為本發明實施例之儲存裝置以及相關應用架構的示意圖。如圖所示,本發明的儲存裝置100可運用於一電子裝置10中。電子裝置10包含一主控裝置(host device)50。主控裝置50可包含:至少一處理器52(例如一或多個處理器),用來控制主控裝置50之運作,其中,本發明的儲存裝置100可用來提供儲存空間給主控裝置50。主控裝置50可以是(但不限於):智慧型手機、平板電腦、可穿戴裝置、個人電腦、筆記型電腦、數位攝錄影機、遊戲主機、車用導航系統、印表機、或者伺服器。儲存裝置100可以是(但不限於):可攜式儲存裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid
state drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。
儲存裝置100包含一記憶體控制器110以及一快閃記憶體120。其中,記憶體控制器120用來對快閃記憶體120進行存取,而快閃記憶體120可用來儲存由主控裝置50所提供或者是由記憶體控制器110所產生的資訊。在一個實施例中,快閃記憶體120可以是反及閘快閃記憶體(NAND Flash memory)。如第1圖所示,記憶體控制器110可包含微處理器112、唯讀記憶體112M、控制邏輯模組114、揮發性記憶體116與傳輸介面電路118,其中這些元件中之至少一部分可透過匯流排彼此耦接。揮發性記憶體116可能為隨機存取記憶體(Random Access Memory,RAM),可用來提供儲存空間給記憶體控制器110,暫時地儲存運行時所需的資料。另外,唯讀記憶體112M可用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以實現對於快閃記憶體120之控制。此外,控制邏輯電路114可根據微處理器112的指令,對快閃記憶體120進行具體的控制。傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準、嵌入式多媒體記憶卡(embedded Multi Media Card,eMMC)標準、或通用快閃記憶體儲存(Universal Flash Storage,UFS)標準)且可依據該特定通訊標準進行通訊。
主控裝置50可藉由傳送主控指令(host command)與對應的邏輯位址予記憶體控制器110來間接地存取儲存裝置100。記憶體控制器110接收主控裝置指令與邏輯位址,並將主控裝置指令轉譯成記憶體操作指令,再以記憶體操
作指令控制快閃記憶體120讀取或寫入(write)/編程(program)中對應的實體位址之儲存單位(memory cell)或頁(page)。當記憶體控制器110對快閃記憶體120進行抹除(erase)時,會以區塊為單位來進行抹除。通常來說,一個區塊可能包含有16、32或64個頁,而每一頁又包含有512或2048個位元組的儲存單元。
在本發明中,記憶體控制器110將快閃記憶體120的儲存空間規劃三個區域,用戶區域122、預留區域124以及限制區域126,這些區域都包含有一定數量的區塊。主控裝置50要求寫入的資料,會透過邏輯位址至實體位址的轉譯,被保存在用戶區域122的區塊中,而在快閃記憶體120運行的過程中,若用戶區域122的區塊變成故障區塊時,則會使用預留區域124的區塊來進行替換。限制區域126則用來保存一些對照表,供記憶體控制器110對快閃記憶體120進行存取的依據。
快閃記憶體120的故障區塊分為兩種類型:出廠時固有的故障區塊以及運行時產生的故障區塊。在儲存裝置100初次運行時,記憶體控制器110會針對所有區塊進行掃描,判別每一個區塊的狀態,是良好或是故障。針對用戶區域122中固有的故障區塊,記憶體控制器110會建立無效區塊管理表(Invalid Block Table,IBT)來記錄並管理。而針對運行時產生的故障區塊,記憶體控制器110則會建立故障區塊管理表(Bad Block Table,BBT)來記錄並管理。其中,故障區塊管理表BBT記錄了預留區域124中的良好區塊,當運行過程中,記憶體控制器110在用戶區域122中發現了故障區塊,則會使用預留區域124中的良好區塊來替換。第2圖繪示了關於故障區塊管理表BBT的建立流程。首先,在步驟210中,搜尋預留區域124中的一個區塊。在步驟212中,判斷該區塊是否狀態正常。若是,則進入步驟214,將該區塊加入可用替換區塊列;若否,則進入步驟216,
判斷是否預留區域124中所有區塊已搜尋完畢。若步驟216的判斷結果為是,則結束流程,若否,則回到步驟210,繼續搜尋預留區域124中的下一個區塊。透過以上的流程,可以將預留區域124中的良好區塊加入故障區塊管理表BBT,以替換後續用戶區域122中的故障區塊。
當記憶體控制器110偵測到用戶區域122的故障區塊時,便會從故障區塊管理表BBT的可用替換區塊列中搜尋可用的替換區塊,並且在找到可用的替換區塊後,在故障區塊管理表BBT中建立用戶區域122的故障區塊(被替換區塊)以及預留區域124中的良好區塊(替換區塊)之間的映射關係。具體流程如第3圖所示。首先,在步驟310中,搜尋可用替換區塊列中的一個可用替換區塊(亦即,預留區域124中良好區塊),在步驟312中,判斷是否該可用替換區塊未被映射至其他故障區塊,也就是說,判斷該可用替換區塊是否尚未被用來替換用戶區域122中的故障區塊。若是,則進入步驟314,在故障區塊管理表BBT中建立該可用替換區塊與用戶區域122中的故障區塊之間的映射關係,之後便完成流程;若否,則進入步驟316,判斷是否可用替換區塊列中所有區塊已搜尋完畢。若步驟316的判斷結果為是,代表已無可用的替換區塊,此時結束流程;若否,則回到步驟310,繼續搜尋可用替換區塊列中的下一個可用替換區塊。
從前述的流程可知,在搜尋可用替換區塊的過程中,記憶體控制器110可能會從故障區塊管理表BBT中發現預留區域124中已無可用替換區塊時。這是因為所有的可用替換區塊都已經映射至用戶區域122的某個故障區塊,替代故障區塊來保存資料。此時,記憶體控制器110將從預留區域124中尋找偽故障區塊。進一步來說,故障區塊管理表BBT中所記錄的預留區域124中的故障區塊,有一定的可能在經過抹除後能恢復正常狀態,這樣的區塊被稱作為偽故障區
塊,其可能為不穩定或異常的供電所導致。因此,當預留區域124中已無可用的替換區塊時,記憶體控制器110便會從預留區域124中的故障區塊中找尋候選區塊,並對候選區塊進行抹除操作,判斷其是否恢復正常狀態;若候選區塊在抹除後恢復狀態正常,則為偽故障區塊可被回收,加入可用替換區塊列。據此,記憶體控制器110會在故障區塊管理表BBT將該區塊中列為可用替換區塊列的最後一項,並且建立其與用戶區域122中的故障區塊的映射關係。另一方面,由於這個候選區塊已被成功回收,因此會將其從故障區塊管理表BBT的候選區塊列中移除,並且調整候選區塊列中的順序,將後續的候選區塊順位前移。具體流程如第4圖所示。在步驟410中,搜尋故障區塊管理表BBT中的候選區塊列中的一個候選區塊,其中,候選區塊列由預留區域124中的故障區塊所組成。在一個實施例中,記憶體控制器110會從重複的映射關係中去尋找候選區塊。在故障區塊管理表BBT中,若用戶區域中122的一個故障區塊已被映射至多個預留區域124中的區塊時,這代表部份的映射關係已經失效。此時,記憶體控制器110會把失效的映射關係中的預留區域124的區塊當成是故障區塊,並且加入至故障區塊管理表BBT的候選區塊列。
在步驟412中,對該候選區塊進行抹除操作。在步驟414中,判斷該候選區塊在抹除後是否恢復正常狀態。若是,代表該候選區塊回收成功,進入步驟416;若否,代表該候選區塊回收失敗,進入步驟418,判斷是否候選區塊列中所有候選區塊已搜尋完畢。若步驟418的判斷結果為是,代表無可回收的候選區塊,此時結束流程;若否,則回到步驟410,繼續搜尋候選區塊列中的下一個候選區塊。另一方面,若候選區塊回收成功,進入步驟416,將該回收區塊加入至可替換區塊列中的最後一項,並且在故障區塊管理表BBT中建立該回收區塊與用戶區域122中的故障區塊之間的映射關係。在步驟420中,將該回收區塊
從候選區塊列中移除,並且將後續的候選區塊順位前移,之後便完成流程。
由上可知,記憶體控制器110除了無法從故障區塊管理表BBT中找到可用替換區塊,也可能無法從預留區域124中找尋到偽故障區塊來回收。此時,記憶體控制器110將進一步從用戶區域122中尋找偽故障區塊。其中,記憶體控制器110從故障區塊管理表BBT中依次搜尋用戶區域122的故障區塊,並且嘗試對其進行抹除操作;若該區塊在抹除後狀態正常,則為偽故障區塊,可被回收作為替換區塊。據此,記憶體控制器110會另外建立一個回收區塊管理表RBT,並且在回收區塊管理表RBT中,記錄從用戶區域122中回收成功的偽故障區塊。具體流程如第5圖所示。在步驟510中,搜尋故障區塊管理表BBT紀錄的用戶區域122中的一個故障區塊。請注意,當記憶體控制器110搜尋用戶區域122中的故障區塊時時,須確定該故障區塊不存在於回收區塊管理表RBT中,才會將其視為候選區塊。如此一來,才能避免重複回收用戶區域122中的偽故障區塊。在步驟512中,對該故障區塊進行抹除操作。在步驟514中,判斷該故障區塊在抹除後是否恢復正常狀態。若是,代表該用戶區域122中的故障區塊回收成功,進入步驟516;若否,代表回收失敗,進入步驟518,判斷是否用戶區域122中所有故障區塊已搜尋完畢。若步驟518的判斷結果為是,代表無可回收的用戶區域122故障區塊,此時結束流程;若否,則回到步驟510,繼續搜尋用戶區域122內的下一個故障區塊。另一方面,若用戶區域122中的故障區塊回收成功,進入步驟516,將該回收區塊加入至回收區塊管理表RBT中的第一項,並且建立該回收區塊與用戶區域122中其他故障區塊之間的映射關係。在步驟520中,並且將回收區塊管理表RBT中後續的回收區塊順位後移,之後便完成流程。
第6圖繪示了上述實施例中,基於故障區塊管理表來控制一快閃記憶
體的簡化流程方法:步驟610:檢測快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表;步驟620:在該故障區塊管理表中建立該用戶區域內的故障區塊與該預留區域中的良好區塊之間的映射關係;步驟630:當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;步驟640:在該故障區塊管理表中,建立該回收區塊與該用戶區域內的故障區塊的映射關係;以及步驟650:基於該故障區塊管理表,將資料寫入於該回收區塊中。
由於上述步驟的原理以及操作細節已經在先前的實施例中明確解釋,在此不另做說明,值得注意的是,在本發明其他實施例中,可以透過加入基於該領域已知技巧的其他額外步驟,來提升技術整體效果。
由前述可知,由於故障區塊管理表BBT記載了用戶區域122中的故障區塊的映射,所以故障區塊管理表BBT能保證儲存裝置100在部分區塊故障的情形下,仍能正常運行。因此,故障區塊管理表BBT的可靠性對於儲存裝置100來說至關重要。為了保證故障區塊管理表BBT的儲存安全性,本發明的實施例還提供一種用於保存故障區塊管理表BBT的方法。在本發明中,記憶體控制器110會從快閃記憶體120中規劃出限制區域126,記憶體控制器110會在這個區域內搜尋紀錄故障區塊管理表BBT所需的區塊。舉例來說,記憶體控制器110可能需要
兩個區塊來同時保存與備份故障區塊管理表BBT,而限制區域126會具備多於兩個的區塊。如此一來,當原本用於保存或備份故障區塊管理表BBT中的一個區塊故障了,記憶體控制器110就會從限制區域126重新搜尋一個良好區塊,替換故障區塊,並且從未故障的區塊上讀取故障區塊管理表BBT,將其寫入新的良好區塊,從而確保故障區塊管理表BBT總是可以被同時保存在兩個區塊上。由於這個方法使用了一定範圍內的區塊來保存與備份故障區塊管理表BBT,而非將故障區塊管理表BBT保存與備份於特定的固定區塊,因此可以提高故障區塊管理表BBT的儲存安全性以及效率。請注意,以上的區塊數量僅作為說明之用,並非本發明之限制,在本發明其他實施例中,故障區塊管理表BBT可能會被同時保存在更多的區塊上,以提升儲存安全性。
綜上所述,本發明所提供的快閃記憶體的故障區塊管理機制,可以在預留區域內的良好區塊使用殆盡時,回收用戶區域或者是預留區域中的偽故障區塊,從而延長快閃記憶體的使用壽命。另一方面,本發明所提供的保存故障區塊管理表的方法,使用了更大範圍內的區塊來保存以及備份故障區塊管理表,提高故障區塊管理表的保存安全性以及效率,對快閃記憶體題供更安全且更高效的管理。
本發明之實施例可使用硬體、軟體、韌體以及其相關結合來完成。藉由適當之一指令執行系統,可使用儲存於一記憶體中之軟體或韌體來實作本發明的實施例。就硬體而言,則是可應用下列任一技術或其相關結合來完成:具有可根據資料信號執行邏輯功能之邏輯閘的一個別運算邏輯、具有合適的組合邏輯閘之一特定應用積體電路(application specific integrated circuit,ASIC)、可程式閘陣列(programmable gate array,PGA)或一現場可程式閘陣列(field
programmable gate array,FPGA)等。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可以代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
410~420:步驟
Claims (9)
- 一種用於一快閃記憶體中管理故障區塊的方式,包含:檢測該快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表;在該故障區塊管理表中建立一用戶區域內的故障區塊與該預留區域中的良好區塊之間的映射關係;當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;在該故障區塊管理表中,建立該回收區塊與該用戶區域內的故障區塊的映射關係;以及基於該故障區塊管理表,將資料寫入於該回收區塊中。
- 如請求項1所述的方法,其中得到該回收區塊的步驟包含:從該預留區域內的故障區塊中選擇一第一故障區塊,並對該第一故障區塊進行抹除;判斷該第一故障區塊抹除後的狀態是否正常;以及當該第一故障區塊抹除後的狀態正常時,將抹除後的該第一故障區塊作為該回收區塊。
- 如請求項2所述的方法,另包含:當該第一故障區塊抹除後的狀態異常時,從該預留區域內的故障區塊中選擇一第二故障區塊,並對該第二故障區塊進行抹除;以及當該第二故障區塊抹除後的狀態正常時,將抹除後的該第二故障區塊作為 該回收區塊。
- 如請求項1所述的方法,另包含:從該用戶區域內的故障區塊中選擇一第三故障區塊,並對該第三故障區塊進行抹除;判斷該第三故障區塊抹除後的狀態是否正常;以及當該第三故障區塊抹除後的狀態正常時,將抹除後的該第三故障區塊作為該回收區塊。
- 如請求項4所述的方法,另包含:只有當該預留區域內的所有故障區塊在抹除的狀態都為異常時,才開始從該用戶區域的故障區塊中選擇該第三故障區塊,並對該第三故障區塊進行抹除。
- 如請求項4所述的方法,另包含:建立一回收區塊管理表;以及當該第三故障區塊抹除後的狀態正常時,將其加入該回收區塊管理表。
- 一種用於一快閃記憶體的控制器,包含:一記憶體單元,用以儲存一程式碼;以及一處理單元,用以執行該程式碼,當該處理單元執行該程式碼時,對該快閃記憶體進行以下操作:檢測該快閃記憶體中的一預留區域中的複數個區塊的狀態,據此建立一故障區塊管理表; 當偵測到該快閃記憶體中的一用戶區域內的一第一故障區塊時,在該故障區塊管理表中建立該第一故障區塊與該預留區域中的一良好區塊之間的映射關係;當該故障區塊管理表指出該預留區域中不存在可映射的良好區塊時,從該預留區域或者該用戶區域內的故障區塊中選擇一個故障區塊,進行抹除後得到一回收區塊;在該故障區塊管理表中,建立該回收區塊與該第一故障區塊的映射關係;以及基於該故障區塊管理表,將資料寫入於該回收區塊中。
- 如請求項7所述的控制器,其中該處理單元執行該程式碼,並且對該快閃記憶體進行以下操作:從該預留區域內的故障區塊中選擇一第一故障區塊,並對該第一故障區塊進行抹除;判斷該第一故障區塊抹除後的狀態是否正常;以及當該第一故障區塊抹除後的狀態正常時,將抹除後的該第一故障區塊作為該回收區塊。
- 如請求項8所述的控制器,其中該處理單元執行該程式碼,並且對該快閃記憶體進行以下操作:當該第一故障區塊抹除後的狀態異常時,從該預留區域內的故障區塊中選擇一第二故障區塊,並對該第二故障區塊進行抹除;以及當該第二故障區塊抹除後的狀態正常時,將抹除後的該第二故障區塊作為該回收區塊。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110191743.1A CN114968066B (zh) | 2021-02-19 | 2021-02-19 | 用于快闪存储器中进行故障区块管理的方法与装置 |
| CN202110191743.1 | 2021-02-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202234411A TW202234411A (zh) | 2022-09-01 |
| TWI779707B true TWI779707B (zh) | 2022-10-01 |
Family
ID=82899592
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110124921A TWI779707B (zh) | 2021-02-19 | 2021-07-07 | 用於快閃記憶體中進行故障區塊管理的方法與裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11599287B2 (zh) |
| CN (1) | CN114968066B (zh) |
| TW (1) | TWI779707B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12118210B2 (en) * | 2020-11-25 | 2024-10-15 | Micron Technology, Inc. | Using bad blocks for system data in memory |
| US12124722B2 (en) * | 2023-02-14 | 2024-10-22 | Dell Products L.P. | Dynamic over-provisioning of storage devices |
| CN117130951B (zh) * | 2023-10-24 | 2024-02-27 | 联和存储科技(江苏)有限公司 | 调整nand闪存伪坏块地址的方法和电子设备 |
| TWI866738B (zh) * | 2024-01-10 | 2024-12-11 | 新唐科技股份有限公司 | 用於處理記憶體壞塊之管理方法及記憶體系統 |
| CN117891412B (zh) * | 2024-03-14 | 2024-07-09 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的坏块映射方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009124320A1 (en) * | 2008-04-05 | 2009-10-08 | Fusion Multisystems, Inc. | Apparatus, system, and method for bad block remapping |
| US8046645B2 (en) * | 2008-04-10 | 2011-10-25 | Phison Electronics Corp. | Bad block identifying method for flash memory, storage system, and controller thereof |
| US9940021B2 (en) * | 2015-11-20 | 2018-04-10 | Phison Electronics Corp. | Method and system for memory management and memory storage device thereof |
| US10229751B2 (en) * | 2017-05-01 | 2019-03-12 | Western Digital Technologies, Inc. | Storage system and method for bad block recycling |
| WO2019205444A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升储存装置可用容量的坏块管理方法 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3734620B2 (ja) * | 1998-06-24 | 2006-01-11 | 沖電気工業株式会社 | 半導体ディスク装置 |
| US7171536B2 (en) * | 2002-10-28 | 2007-01-30 | Sandisk Corporation | Unusable block management within a non-volatile memory system |
| KR20060019383A (ko) * | 2004-08-27 | 2006-03-03 | 삼성전자주식회사 | 정보 저장 매체, 기록/재생 장치 및 기록/재생 방법 |
| US8327066B2 (en) * | 2008-09-30 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
| US8112682B2 (en) * | 2009-04-23 | 2012-02-07 | Sandisk Il Ltd | Method and device for bad-block testing |
| KR101090394B1 (ko) * | 2009-12-24 | 2011-12-07 | 주식회사 하이닉스반도체 | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 |
| KR20120003283A (ko) * | 2010-07-02 | 2012-01-10 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 배드 블록 관리 방법 |
| US9442833B1 (en) * | 2010-07-20 | 2016-09-13 | Qualcomm Incorporated | Managing device identity |
| TWI420308B (zh) * | 2010-10-13 | 2013-12-21 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
| KR20130115603A (ko) * | 2012-04-12 | 2013-10-22 | 주식회사 유니테크반도체 | 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법 |
| US9128822B2 (en) * | 2012-06-22 | 2015-09-08 | Winbond Electronics Corporation | On-chip bad block management for NAND flash memory |
| US9460815B2 (en) * | 2013-12-30 | 2016-10-04 | Sandisk Technologies Llc | Reusing partial bad blocks in NAND memory |
| TWI524183B (zh) * | 2014-01-09 | 2016-03-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| CN105225695A (zh) * | 2014-05-28 | 2016-01-06 | 上海复旦微电子集团股份有限公司 | 快闪存储器的擦除方法及快闪存储器 |
| US9760303B2 (en) * | 2015-09-29 | 2017-09-12 | Sandisk Technologies Llc | Partially-bad block operation in 3-D nonvolatile memory |
| KR102840971B1 (ko) * | 2019-05-17 | 2025-07-31 | 에스케이하이닉스 주식회사 | 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법 |
| US11049585B1 (en) * | 2020-03-27 | 2021-06-29 | Macronix International Co., Ltd. | On chip block repair scheme |
-
2021
- 2021-02-19 CN CN202110191743.1A patent/CN114968066B/zh active Active
- 2021-07-06 US US17/368,811 patent/US11599287B2/en active Active
- 2021-07-07 TW TW110124921A patent/TWI779707B/zh active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009124320A1 (en) * | 2008-04-05 | 2009-10-08 | Fusion Multisystems, Inc. | Apparatus, system, and method for bad block remapping |
| US8046645B2 (en) * | 2008-04-10 | 2011-10-25 | Phison Electronics Corp. | Bad block identifying method for flash memory, storage system, and controller thereof |
| US9940021B2 (en) * | 2015-11-20 | 2018-04-10 | Phison Electronics Corp. | Method and system for memory management and memory storage device thereof |
| US10229751B2 (en) * | 2017-05-01 | 2019-03-12 | Western Digital Technologies, Inc. | Storage system and method for bad block recycling |
| WO2019205444A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升储存装置可用容量的坏块管理方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114968066B (zh) | 2025-09-23 |
| TW202234411A (zh) | 2022-09-01 |
| US11599287B2 (en) | 2023-03-07 |
| US20220269409A1 (en) | 2022-08-25 |
| CN114968066A (zh) | 2022-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI779707B (zh) | 用於快閃記憶體中進行故障區塊管理的方法與裝置 | |
| US10452535B2 (en) | Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device | |
| US10255192B2 (en) | Data storage device and data maintenance method thereof | |
| CN115461727A (zh) | 依序编程的存储器子系统中的异步断电处置 | |
| US10503606B2 (en) | Data backup method, data recovery method and storage controller | |
| US11521701B2 (en) | Memory controller with read error handling | |
| CN107038131A (zh) | 固态硬盘断电保护装置及方法 | |
| CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
| US10642731B2 (en) | Memory management method and storage controller | |
| TW201527973A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN102298543A (zh) | 一种存储器管理方法和装置 | |
| CN118484150B (zh) | 一种存储设备及其故障处理方法 | |
| KR20170098900A (ko) | 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템 | |
| KR20110024832A (ko) | 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 | |
| TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
| CN107704338B (zh) | 一种资料储存型闪存的数据恢复方法和装置 | |
| US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
| CN111580757B (zh) | 数据写入方法、系统和固态硬盘 | |
| CN110704339B (zh) | 一种数据销毁方法、装置、设备、介质 | |
| CN110968473B (zh) | 存储器控制器和包括存储器控制器的存储装置 | |
| TW202145243A (zh) | 資料儲存裝置與資料處理方法 | |
| US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
| CN102043724B (zh) | 用于闪存的区块管理方法、控制器与存储系统 | |
| TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| US12436882B1 (en) | Control method of flash memory controller |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| GD4A | Issue of patent certificate for granted invention patent |