TWI639917B - 資料儲存裝置及映射表重建方法 - Google Patents
資料儲存裝置及映射表重建方法 Download PDFInfo
- Publication number
- TWI639917B TWI639917B TW106113731A TW106113731A TWI639917B TW I639917 B TWI639917 B TW I639917B TW 106113731 A TW106113731 A TW 106113731A TW 106113731 A TW106113731 A TW 106113731A TW I639917 B TWI639917 B TW I639917B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- mapping table
- block
- address mapping
- logical
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一種資料儲存裝置,其具有非揮發性記憶體以及微控制器。非揮發性記憶體中存有資料區塊。微控制器自資料區塊中選取來源區塊以及目地區塊並將來源區塊的有效資料複製至目地區塊,當有效資料之一者毀損且無法修復時,將有效資料之一者所對應之不可修復錯誤位元紀錄至目地區塊。
Description
本申請係有關於資料重建技術,特別係有關於一種適用於資料儲存裝置的邏輯到實體位址映射表(logical-to-physical address mapping table)重建方法。
隨著電腦科技的演進,逐漸發展出各式的密集儲存裝置,其中又以記憶體為最廣受使用的儲存媒介,一般來說,依據儲存特性之別,記憶體又可區分為揮發性(volatile)記憶體與非揮發性(non-volatile)記憶體,其中揮發性記憶體所儲存的資料會在電源供應中斷後消失,而非揮發性記憶體所儲存的資料即使在斷電時依舊能夠被保存下來,只要重新供電就能夠讀取內存資料。
以非揮發性記憶體為例,其於近年來被大量使用於電子產品中,特別是可攜式電子產品(如:行動電話、數位相機、以及小型遊戲機等),用以長時間保存資料。目前市面上有許多種不同類型的非揮發性記憶體,包括:快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magneto-resistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、以及自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)等。
在非揮發性記憶體的使用過程中,需要以映射表來管理主機端的邏輯位址以及非揮發性記憶體端的實體位址之間的映射關係,以實現正確的資料存取操作。然而,在使用上若發生不當斷電或突然斷電,將可能造成內存資料的毀損,例如:映射表毀損。因此,亟需有一種映射表重建方法,能夠有效解決映射表毀損的問題。
為了解決上述問題,本申請提出一種資料儲存裝置及映射表重建方法,特別將邏輯到實體位址映射表中的不可修復錯誤(uncorrectable error,UNC error)位元備份到實體到邏輯位址映射表(physical-to-logical address mapping table)、以及/或資料頁備用區(data page spare area),使得於重建邏輯到實體位址映射表時也能夠快速重建不可修復錯誤位元。
本申請之一實施例提供了一種資料儲存裝置,包括一非揮發性記憶體以及一微控制器。上述非揮發性記憶體包括複數資料區塊。上述微控制器自上述資料區塊中選取一來源區塊以及一目地區塊並將上述來源區塊的複數有效資料複製至上述目地區塊,當上述有效資料之一者毀損且無法修復時,將上述有效資料之上述一者所對應之一不可修復錯誤位元紀錄至上述目地區塊。
較佳的情況是,上述不可修復錯誤位元係記錄於上述目地區塊的一區塊終端,或者,上述不可修復錯誤位元係記錄於上述目地區塊的一備用區域。
本申請之另一實施例提供了一種資料儲存裝置,
包括一非揮發性記憶體以及一微控制器。上述非揮發性記憶體包括複數資料區塊。上述微控制器讀取每一上述資料區塊中之一實體到邏輯位址映射表,每一上述實體到邏輯位址映射表包括一不可修復錯誤位元,以及依據上述實體到邏輯位址映射表的先後順序建立一邏輯到實體位址映射表,其中上述邏輯到實體位址映射表包括上述不可修復錯誤位元。
較佳的情況是,上述實體到邏輯位址映射表係儲存於上述資料區塊的區塊終端。上述資料區塊的先後順序係記錄於一時序列表中,或者,上述資料區塊的先後順序係參照每一上述資料區塊的一時間戳記而決定。
本申請之另一實施例提供了一種映射表重建方法,適用於一資料儲存裝置,上述映射表重建方法包括以下步驟:令上述資料儲存裝置之一非揮發性記憶體的空間劃分為至少一系統資訊區塊以及至少一資料區塊;以及在上述系統資訊區塊中之一邏輯到實體位址映射表毀損時,從上述資料區塊中之一實體到邏輯位址映射表或一資料頁備用區域讀取一不可修復錯誤位元,以重建上述邏輯到實體位址映射表。
較佳的情況是,映射表重建方法還包括以下步驟:在寫入資料至上述資料區塊時,從上述邏輯到實體位址映射表讀取上述不可修復錯誤位元並寫入至上述實體到邏輯位址映射表或上述資料頁備用區域;在從上述資料區塊讀取資料卻發生錯誤時,執行一資料修復程序;以及在上述資料修復程序失敗時,將上述邏輯到實體位址映射表中之上述不可修復錯誤位元設為「真」。
上述邏輯到實體位址映射表係用以指示一主機至上述非揮發性記憶體之映射資訊,上次實體到邏輯位址映射表還用以指示上述非揮發性記憶體至上述主機之映射資訊。
上述實體到邏輯位址映射表係儲存於上述資料區塊之一區塊終端。
上述資料頁備用區域還用以儲存上述資料區塊中每一資料頁之元資料。
關於本申請其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本申請之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置以及映射表重建方法做些許的更動與潤飾而得到。
100‧‧‧快閃記憶體
102‧‧‧資料區域
104‧‧‧備用區域
200‧‧‧資料儲存裝置
210‧‧‧快閃記憶體
211‧‧‧線上編程區塊池
212‧‧‧系統資訊區塊池
213‧‧‧閒置區塊池
214‧‧‧資料區塊池
220‧‧‧控制單元
221‧‧‧微控制器
222‧‧‧隨機存取記憶體
223‧‧‧唯讀記憶體
300‧‧‧主機
S401~S405‧‧‧步驟編號
BLK#1、BLK#2、BLK#Z‧‧‧物理區塊
U#i、U#(i+1)、U#(i+2)、U#(i+3)‧‧‧儲存單元
BLK#‧‧‧物理區塊編號
U#‧‧‧儲存單元編號
H2F_H#1、H2F_H#2‧‧‧主機區塊映射表
H2F‧‧‧H2F映射表
F2H‧‧‧F2H映射表
EOB‧‧‧區塊終端
第1A圖以及第1B圖係顯示一範例快閃記憶體之物理空間配置之示意圖。
第2圖係根據本申請一實施例所述之資料儲存裝置之示意圖。
第3圖係顯示以邏輯位址為索引的H2F映射表之示意圖。
第4圖係根據本申請一實施例所述之H2F映射表重建方法之流程圖。
本章節所敘述的是實施本申請之最佳方式,目的在於說明本申請之精神而非用以限定本申請之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實
現。
非揮發性記憶體包括:快閃記憶體、磁阻式隨機存取記憶體、鐵電隨機存取記憶體、電阻式記憶體、自旋轉移力矩隨機存取記憶體等,其具有長時間保存資料之特性。以下特別以快閃記憶體為例進行說明。
現今資料儲存裝置常以快閃記憶體為儲存媒介,常用來實現記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、以及固態硬碟(Solid State Drive,SSD)等產品。其中一種應用是採多晶片封裝,將快閃記憶體與其控制器包裝在一起,稱為嵌入式快閃記憶體模組(如:嵌入式多媒體卡(embedded MultiMedia Card,eMMC))。
以快閃記憶體為儲存媒介的資料儲存裝置可應用於多種電子裝置中,包括:智慧型手機、穿戴裝置、平板電腦、以及虛擬實境設備等,而一般來說,這般電子裝置中的中央處理單元(Central Processing Unit,CPU)可被視為操作所述資料儲存裝置的一主機。
第1A圖以及第1B圖係顯示一範例快閃記憶體之物理空間配置之示意圖。
如第1A圖所示,快閃記憶體100的資料儲存空間可被劃分為複數個區塊(或稱物理區塊(physical block))BLK#1、BLK#2、…BLK#Z,其中Z為正整數。各物理區塊包括複數物理頁(physical page),或可稱為資料頁(data page),例如:256個資料頁。
如第1B圖所示,每一資料頁包括資料區域(data
area)102、以及備用區域(spare area)104。資料區域102可進一步劃分為複數個儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3),經配置後,對應主機端的邏輯位址儲存資料。主機端的邏輯位址有多種形式,例如,以邏輯區塊位址(Logical Block Address,LBA)、或全域主機頁(Global Host Page,GHP)進行編號。
在一實施例,資料區域102的大小為16KB(Kilo-Byte,千位元組),儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3)的大小各為4KB,每個儲存單元可對應到8個邏輯區塊位址(如:LBA#0~LBA#7)、或對應到1個全域主機頁。
備用區域104係用來儲存所屬資料頁的元資料(metadata),包括映射資訊、以及區塊識別碼。區塊識別碼係用以記錄所屬物理區塊的區塊識別碼。映射資訊係用以指示儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3)所儲存的內容對應到的主機端的邏輯位址。舉例來說,映射資訊可紀錄4段邏輯區塊位址(各段包括8個邏輯區塊位址的編號)、或4個全域主機頁的編號。以下以全域主機頁為例進行說明,但不以此為限。
第2圖係根據本申請一實施例所述之資料儲存裝置之示意圖。資料儲存裝置200包括快閃記憶體210以及控制單元220,其中控制單元220耦接於主機300與快閃記憶體210之間,並根據主機300所下達的指令(如:讀取、寫入、或重置等)操作快閃記憶體210。
控制單元220包括微控制器221、隨機存取記憶體222、以及唯讀記憶體223,其中,隨機存取記憶體222與微控制器221可設置於同一個晶粒(die),或是分開製作,且可能空
間有限(相較於大尺寸DRAM)。舉例來說,一安全數位(Secure Digital,SD)卡可使用512KB的靜態隨機存取記憶體(Static Random Access Memory,SRAM)來實現隨機存取記憶體222。
唯讀記憶體223係用以儲存唯讀程式碼(如,ROM code)。微控制器221可載入並執行唯讀記憶體223所儲存之唯讀程式碼、以及/或快閃記憶體210之線上編程(in-system programming,ISP)區塊池211所儲存之線上編程程式,以進行運作,且運作中可利用隨機存取記憶體222作動態資訊儲存。微控制器221的運作內容還特別包括:動態整理快閃記憶體210的邏輯位址(主機300的視角)與物理位址(快閃記憶體210的視角)之間的映射資訊,包括主機至快取記憶體(Host to Flash,H2F)映射表(文後簡稱為H2F映射表)、以及資料區塊各自的快取記憶體至主機(Flash to Host,F2H)映射表(文後簡稱為F2H映射表)。
快閃記憶體210的空間配置包括:線上編程區塊池211、系統資訊區塊池212、閒置區塊池213、以及資料區塊池214。
系統資訊區塊池212中的區塊係用以儲存系統資訊,包括H2F映射表之非揮發式存儲,H2F映射表之範例將於文後第3圖做進一步說明。
閒置區塊池213中的區塊可由微控制器221配置來儲存資料(例如,作為主動區塊接收主機300寫入資料、或作為垃圾回收之目標區塊),並待資料儲存完成(寫滿、或中斷不再利用)即推入資料區塊池214定義為資料區塊。
資料區塊池214中的區塊又可被稱為資料區塊,係由實體位址所定義出來的資料儲存空間,也就是主機300要讀取的資料的真實所在位置。F2H映射表係儲存於對應區塊的區塊終端(End of Block,EOB)中,而區塊終端較佳係儲存於對應區塊的最末資料頁。
一般運作下,資料儲存裝置200的控制單元220會動態整理映射表,包括:H2F映射表、以及F2H映射表。H2F映射表可以全域主機頁為索引,記錄各全域主機頁的資料(有效資料)是被儲存至快閃記憶體210的哪個物理位址,也就是哪一物理區塊中的哪一資料頁或哪一儲存單元。F2H映射表則可記錄所描述的物理區塊中,資料頁或儲存單元所儲存的內容所對應到的全域主機頁為何。由此可知,映射表是資料儲存裝置200運作所需重要依據。
第3圖係顯示以邏輯位址為索引的H2F映射表之示意圖。H2F映射表中的每個項目(entry)記錄不同邏輯位址(如,邏輯區塊位址、或全域主機頁)的資料是被儲存至快閃記憶體100中哪一物理區塊(圖中標示為BLK#)的哪一儲存單元(圖中標示為U#),即物理物址。在一實施例中,邏輯位址與物理物址的資料長度為32位元,其中,BLK#的資料長度為16位元,U#的資料長度也為16位元。而為了因應龐大的儲存空間,H2F映射表還可以主機區塊(host block)為單位,細分為主機區塊映射表H2F_H#0、H2F_H#1…等。在一實施例,每個主機區塊映射表的大小為64KB。該些主機區塊映射表H2F_H#0、H2F_H#1…可以一指標列表管理。
在本發明中,H2F映射表中的每個項目除了紀錄全域主機頁與實體位址的對應關係之外,還記錄一不可修復錯誤(uncorrectable error,UNC error)位元(圖中標示為UNC位元),用以指示所屬的全域主機頁是否曾經在被讀取時發生不可修復之錯誤。在一實施例,不可修復錯誤位元可以是每個項目中的任何一個未使用的位元,較佳為每個項目中的邏輯位址的第31個位元或物理物址的第31個位元或第15個位元。
一開始在H2F映射表中每個有效資料(邏輯位址或物理位址)所對應的不可修復錯誤位元的預設值皆為「假(false)」。當資料儲存裝置200執行垃圾收集(garbage collection)或其他資料搬移機制時,會選取一來源區塊以及一目的區塊,其中,來源區塊較佳為資料區塊池214中具有最大抹寫次數(erase count)或抹寫次數超過一預設值的資料區塊,或是具有最大錯誤位元數(error bit count)或錯誤位元數超過一預設值的資料區塊,例如物理區塊BLK#1;目的區塊較佳為閒置區塊池213中具有最小抹寫次數的閒置區塊、任一或佇列中的閒置區塊,例如物理區塊BLK#2。其中,垃圾收集或其他資料搬移機制較佳於背景模式下執行,亦可於前景模式下執行。當有效資料由來源區塊搬移(或複製)至目的區塊時,如果來源區塊的一物理物址的有效資料毀損時,資料儲存裝置200會先執行資料修復程序試圖修復毀損的有效資料,而當資料修復程序失敗時,則認定是不可修復之錯誤並將H2F映射表中此有效資料所對應的不可修復錯誤位元設為「真」。最後,資料儲存裝置200可停止搬移(或複製)此有效資料,並更新此H2F映射表中此有
效資料所對應的不可修復錯誤位元;或直接將此毀損的有效資料搬移(或複製)至目的區塊,並更新H2F映射表中此有效資料所對應的不可修復錯誤位元及儲存此有效資料所對應的不可修復錯誤位元至備用區域104,並於目的區塊寫入EOB資訊時,將此有效資料所對應的不可修復錯誤位元寫入至F2H映射表。在一實施例,資料修復程序可使用錯誤修復碼(Error Correction Code,ECC)的機制來實現錯誤偵測及修復,關於錯誤修復碼的運作機制將於後續進一步說明。
於此之後,當主機300欲讀取此有效資料時,資料儲存裝置200根據此有效資料在H2F映射表中的不可修復錯誤位元來直接回應主機300的資料讀取要求。一旦不可修復錯誤位元被設為「真」,則資料儲存裝置200可直接省略資料讀取作業,即省略對快閃記憶體210的操作,直接回傳不可修復錯誤、或讀取錯誤至主機300,如此一來,有效提升資料儲存裝置200的整體系統效能。另外,本申請提出一映射表重建方法能夠連同不可修復錯誤位元一併快速重建。
在本申請中,除了H2F映射表有紀錄有效資料的不可修復錯誤位元,F2H映射表以及每個資料頁的備用區域也有紀錄此有效資料的不可修復錯誤位元。因此,當H2F映射表毀損時,微控制器221可於重建H2F映射表的過程中,根據F2H映射表或備用區域中的不可修復錯誤位元,快速重建H2F映射表中的不可修復錯誤位元。
第4圖係根據本申請一實施例所述之H2F映射表重建方法之流程圖。在此實施例,H2F映射表重建方法係適用
於一資料儲存裝置,如資料儲存裝置200,特別是,在該資料儲存裝置中,除了H2F映射表有紀錄不可修復錯誤位元,F2H映射表以及資料頁的備用區域也有紀錄不可修復錯誤位元。
首先,當資料儲存裝置偵測到H2F映射表毀損時(步驟S401),會執行第一修復程序試圖從H2F映射表中所含的錯誤修復碼(Error Correction Code,ECC)直接修復H2F映射表(步驟S402),其中,H2F映射表乃儲存於系統資訊區塊池212中的區塊的資料區域102,錯誤修復碼乃儲存於系統資訊區塊池212中的區塊的備用區域104。
造成H2F映射表毀損的原因有很多,例如:在資料讀取或寫入的過程中發生傳輸線鬆脫、或資料儲存裝置的不當斷電或突然斷電、或儲存媒介的實體磨損。
在一實施例,H2F映射表可於每個字節(word)(例如:32位元)中嵌入一核對碼(checksum)及錯誤修復碼,其中核對碼係於資料寫入至該字節時根據資料內容所計算出來的,之後,在讀取資料時,會再次根據資料內容重新計算出新的核對碼,若新的核對碼與先前寫入的核對碼不同,則表示資料毀損,接著使用錯誤修復碼嘗試修復資料,然而,錯誤修復碼對於修復毀損資料有其極限,僅能修復有限位元數的毀損資料,若毀損的資料超過可修復之位元數,則修復失敗。
接續步驟S402,若修復成功,則流程結束;反之,若修復失敗,則執行第二修復程序試圖根據F2H映射表來重建H2F映射表(步驟S403)。
明確來說,第二修復程序包括:根據資料區塊的
F2H映射表,例如,物理區塊BLK#2的區塊終端所儲存的F2H映射表,所記錄的物理位址到全域主機頁的對應關係,反向回推出全域主機頁到物理位址的對應關係,即可重建H2F映射表中的映射資訊;以及將F2H映射表所記錄的不可修復錯誤位元複製到重建的H2F映射表中的不可修復錯誤位元。由於資料區塊池214中資料區塊的數目可能超過1,因此,當讀取資料區塊的F2H映射表時,較佳係依據時序列表(linklist)或依據資料區塊建立時所記錄的時間戳記(timestamp)來決定資料區塊的F2H映射表的讀取順序。
接續步驟S403,若重建成功,則流程結束;反之,若重建失敗,則執行第三修復程序試圖根據資料區塊的備用區域,例如:物理區塊BLK#2的備用區域104,來重建H2F映射表(步驟S404)。
明確來說,第三修復程序包括:根據每個備用區域所記錄的映射資訊(指示了物理位址到全域主機頁的對應關係),反向回推出全域主機頁到物理位址的對應關係,即可重建H2F映射表中的映射資訊;以及將每個備用區域所記錄的不可修復錯誤位元複製到重建的H2F映射表中的不可修復錯誤位元。
接續步驟S404,若重建成功,則流程結束;反之,若重建失敗,則產生錯誤訊息,指示資料儲存裝置發生資料毀損(步驟S405),然後流程結束。
在一實施例,如果第一到第三修復程序都無法修復/重建H2F映射表,那麼連接到資料儲存裝置的主機,例如:
主機300,在接收到錯誤訊息時,可選擇重置(如:重新初始化)資料儲存裝置。
本申請雖以各種實施例揭露如上,然而其僅為範例參考而非用以限定本申請的範圍,任何熟習此項技藝者,在不脫離本申請之精神和範圍內,當可做些許的更動與潤飾。因此上述實施例並非用以限定本申請之範圍,本申請之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (13)
- 一種資料儲存裝置,包括:一非揮發性記憶體,包括複數資料區塊;以及一微控制器,自上述資料區塊中選取一來源區塊以及一目地區塊並將上述來源區塊的複數有效資料複製至上述目地區塊,當上述有效資料之一者毀損且無法修復時,將上述有效資料之上述一者所對應之一不可修復錯誤位元紀錄至上述目地區塊,其中上述不可修復錯誤位元係用以指示上述來源區塊是否曾經在被讀取時發生不可修復之錯誤。
- 如申請專利範圍第1項所述之資料儲存裝置,其中上述不可修復錯誤位元係記錄於上述目地區塊的一區塊終端。
- 如申請專利範圍第1項所述之資料儲存裝置,其中上述不可修復錯誤位元係記錄於上述目地區塊的一備用區域。
- 一種資料儲存裝置,包括:一非揮發性記憶體,包括複數資料區塊;以及一微控制器,讀取每一上述資料區塊中之一實體到邏輯位址映射表,每一上述實體到邏輯位址映射表包括一不可修復錯誤位元,以及依據上述實體到邏輯位址映射表的先後順序建立一邏輯到實體位址映射表,其中上述邏輯到實體位址映射表包括上述不可修復錯誤位元,且上述不可修復錯誤位元係用以指示所屬的資料區塊是否曾經在被讀取時發生不可修復之錯誤。
- 如申請專利範圍第4項所述之資料儲存裝置,其中上述資料區塊的先後順序係記錄於一時序列表中。
- 如申請專利範圍第4項所述之資料儲存裝置,其中上述資料區塊的先後順序係參照每一上述資料區塊的一時間戳記而決定。
- 如申請專利範圍第4項所述之資料儲存裝置,其中上述實體到邏輯位址映射表係儲存於上述資料區塊的區塊終端。
- 一種映射表重建方法,適用於一資料儲存裝置,包括:令上述資料儲存裝置之一非揮發性記憶體的空間劃分為至少一系統資訊區塊以及至少一資料區塊;以及在上述系統資訊區塊中之一邏輯到實體位址映射表毀損時,從上述資料區塊中之一實體到邏輯位址映射表或一資料頁備用區域讀取一不可修復錯誤位元,以重建上述邏輯到實體位址映射表,其中上述不可修復錯誤位元係用以指示上述資料區塊是否曾經在被讀取時發生不可修復之錯誤。
- 如申請專利範圍第8項所述之映射表重建方法,更包括:在寫入資料至上述資料區塊時,從上述邏輯到實體位址映射表讀取上述不可修復錯誤位元並寫入至上述實體到邏輯位址映射表或上述資料頁備用區域。
- 如申請專利範圍第8項所述之映射表重建方法,更包括:在從上述資料區塊讀取資料卻發生錯誤時,執行一資料修復程序;以及在上述資料修復程序失敗時,將上述邏輯到實體位址映射表中之上述不可修復錯誤位元設為「真」。
- 如申請專利範圍第8項所述之映射表重建方法,其中上述邏輯到實體位址映射表係用以指示一主機至上述非揮發性記憶體之映射資訊,上次實體到邏輯位址映射表還用以指示上述非揮發性記憶體至上述主機之映射資訊。
- 如申請專利範圍第8項所述之映射表重建方法,其中上述實體到邏輯位址映射表係儲存於上述資料區塊之一區塊終端。
- 如申請專利範圍第8項所述之映射表重建方法,其中上述資料頁備用區域還用以儲存上述資料區塊中每一資料頁之元資料。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106113731A TWI639917B (zh) | 2017-04-25 | 2017-04-25 | 資料儲存裝置及映射表重建方法 |
CN201710473881.2A CN108733510B (zh) | 2017-04-25 | 2017-06-21 | 数据储存装置及映射表重建方法 |
US15/858,393 US10635525B2 (en) | 2017-04-25 | 2017-12-29 | Data storage devices and methods for rebuilding a memory address mapping table |
US16/825,501 US11249840B2 (en) | 2017-04-25 | 2020-03-20 | Data storage devices and methods for rebuilding a memory address mapping table |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106113731A TWI639917B (zh) | 2017-04-25 | 2017-04-25 | 資料儲存裝置及映射表重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI639917B true TWI639917B (zh) | 2018-11-01 |
TW201839611A TW201839611A (zh) | 2018-11-01 |
Family
ID=63852310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106113731A TWI639917B (zh) | 2017-04-25 | 2017-04-25 | 資料儲存裝置及映射表重建方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10635525B2 (zh) |
CN (1) | CN108733510B (zh) |
TW (1) | TWI639917B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI639917B (zh) * | 2017-04-25 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及映射表重建方法 |
CN109582599B (zh) * | 2017-09-29 | 2023-12-22 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
CN109597712B (zh) * | 2018-11-27 | 2021-04-23 | 杭州宏杉科技股份有限公司 | 空间分配方法及装置 |
CN111324289B (zh) * | 2018-12-14 | 2024-02-20 | 兆易创新科技集团股份有限公司 | 一种存储器 |
TWI698748B (zh) * | 2019-01-02 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置、存取裝置及資料處理方法 |
KR20200113047A (ko) * | 2019-03-20 | 2020-10-06 | 삼성전자주식회사 | 오픈 채널 스토리지 장치의 동작 방법 |
TWI698744B (zh) * | 2019-04-10 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置及邏輯至物理位址映射表之更新方法 |
US10877900B1 (en) * | 2019-06-26 | 2020-12-29 | Western Digital Technologies, Inc. | Enabling faster and regulated device initialization times |
CN110704337B (zh) * | 2019-09-23 | 2021-01-19 | 深圳忆联信息系统有限公司 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
CN111400201B (zh) | 2020-03-19 | 2022-08-16 | 合肥兆芯电子有限公司 | 快闪存储器的数据整理方法、存储装置及控制电路单元 |
TWI756854B (zh) * | 2020-04-27 | 2022-03-01 | 慧榮科技股份有限公司 | 管理資料儲存的方法及裝置以及電腦程式產品 |
CN111581022B (zh) * | 2020-04-30 | 2022-07-08 | 江苏芯盛智能科技有限公司 | 一种数据恢复方法及系统 |
KR20210137679A (ko) * | 2020-05-11 | 2021-11-18 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
CN113918082B (zh) * | 2020-07-08 | 2024-03-08 | 慧荣科技股份有限公司 | 计算机可读取存储介质、配置可靠命令的方法及装置 |
CN113971964B (zh) * | 2020-07-24 | 2023-08-04 | 深圳市江波龙电子股份有限公司 | 一种数据恢复方法及存储设备、终端设备 |
US11527300B2 (en) | 2020-08-26 | 2022-12-13 | Western Digital Technologies, Inc. | Level dependent error correction code protection in multi-level non-volatile memory |
US11436083B2 (en) | 2020-09-04 | 2022-09-06 | Western Digital Technologies, Inc. | Data address management in non-volatile memory |
CN112634975A (zh) * | 2020-12-24 | 2021-04-09 | 杭州华澜微电子股份有限公司 | 一种数据存储纠错方法、装置及电子设备 |
US11556467B1 (en) * | 2021-07-13 | 2023-01-17 | Micron Technology, Inc. | Optimizing garbage collection that uses a logical-to-physical table search |
KR20230013558A (ko) * | 2021-07-19 | 2023-01-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 컴퓨팅 시스템 |
CN115202933A (zh) * | 2022-07-19 | 2022-10-18 | 合肥兆芯电子有限公司 | 映射表重建方法、存储器存储装置及存储器控制电路单元 |
CN115563026B (zh) * | 2022-12-07 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种映射表的重建方法及数据存储设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407449B1 (en) * | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US20140136753A1 (en) * | 2012-11-15 | 2014-05-15 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
TWI455142B (zh) * | 2010-04-08 | 2014-10-01 | Silicon Motion Inc | 快閃記憶體之資料讀取的方法以及資料儲存裝置 |
TW201617876A (zh) * | 2014-11-03 | 2016-05-16 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005301591A (ja) * | 2004-04-09 | 2005-10-27 | Toshiba Corp | 不揮発性メモリを備えた装置及びメモリコントロ−ラ |
CN100595757C (zh) * | 2006-03-28 | 2010-03-24 | 联芯科技有限公司 | 文件系统的安全管理方法及装置 |
DE202007009033U1 (de) * | 2007-06-26 | 2007-08-30 | Kiekert Ag | Elektronische Zustandserfassungseinrichtung |
US20100325374A1 (en) | 2009-06-17 | 2010-12-23 | Sun Microsystems, Inc. | Dynamically configuring memory interleaving for locality and performance isolation |
US8327092B2 (en) | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
TWI407310B (zh) * | 2009-10-09 | 2013-09-01 | Silicon Motion Inc | 資料儲存裝置及資料存取方法 |
US9003102B2 (en) * | 2011-08-26 | 2015-04-07 | Sandisk Technologies Inc. | Controller with extended status register and method of use therewith |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
US20130179726A1 (en) | 2012-01-08 | 2013-07-11 | Synology Incorporated | Automatic remapping in redundant array of independent disks and related raid |
US9047922B2 (en) * | 2012-01-27 | 2015-06-02 | Seagate Technology Llc | Autonomous event logging for drive failure analysis |
TWI480733B (zh) * | 2012-03-29 | 2015-04-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN103377143B (zh) * | 2012-04-27 | 2016-12-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
CN103631721A (zh) * | 2012-08-23 | 2014-03-12 | 华为技术有限公司 | 一种隔离内存中坏块的方法及系统 |
CN103902406A (zh) * | 2012-12-31 | 2014-07-02 | 杨威锋 | 高可靠性固态存储设备的映射表信息的保存和恢复技术 |
TWI548990B (zh) * | 2013-05-17 | 2016-09-11 | 宇瞻科技股份有限公司 | 記憶體儲存裝置及其還原方法與記憶體控制器 |
US9400745B2 (en) * | 2013-11-06 | 2016-07-26 | International Business Machines Corporation | Physical address management in solid state memory |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
TWI579696B (zh) * | 2015-11-06 | 2017-04-21 | 群聯電子股份有限公司 | 資料重建方法與系統及其記憶體控制電路單元 |
TWI639917B (zh) * | 2017-04-25 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及映射表重建方法 |
-
2017
- 2017-04-25 TW TW106113731A patent/TWI639917B/zh active
- 2017-06-21 CN CN201710473881.2A patent/CN108733510B/zh active Active
- 2017-12-29 US US15/858,393 patent/US10635525B2/en active Active
-
2020
- 2020-03-20 US US16/825,501 patent/US11249840B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407449B1 (en) * | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
TWI455142B (zh) * | 2010-04-08 | 2014-10-01 | Silicon Motion Inc | 快閃記憶體之資料讀取的方法以及資料儲存裝置 |
US20140136753A1 (en) * | 2012-11-15 | 2014-05-15 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
TW201617876A (zh) * | 2014-11-03 | 2016-05-16 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108733510A (zh) | 2018-11-02 |
US10635525B2 (en) | 2020-04-28 |
US20200218602A1 (en) | 2020-07-09 |
US20180307558A1 (en) | 2018-10-25 |
US11249840B2 (en) | 2022-02-15 |
CN108733510B (zh) | 2023-03-28 |
TW201839611A (zh) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639917B (zh) | 資料儲存裝置及映射表重建方法 | |
TWI703438B (zh) | 映射表更新方法 | |
US11113149B2 (en) | Storage device for processing corrupted metadata and method of operating the same | |
US10013307B1 (en) | Systems and methods for data storage devices to use external resources | |
JP5675954B2 (ja) | メタデータタグを介した不規則なパリティ分布の検出 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US10061710B2 (en) | Storage device | |
TWI646535B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TW201916018A (zh) | 資料儲存裝置與將資料寫入記憶體裝置之方法 | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN108958961B (zh) | 数据储存装置以及数据错误管理方法 | |
TW201913380A (zh) | 資料儲存裝置以及其操作方法 | |
TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112099985A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
TWI738359B (zh) | 資料儲存裝置與資料處理方法 | |
TWI723581B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI669610B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN117407325A (zh) | 支持ssd的数据管理方法及系统 |