TWI557559B - 利用快閃記憶體的壞頁來存取資料的方法 - Google Patents

利用快閃記憶體的壞頁來存取資料的方法 Download PDF

Info

Publication number
TWI557559B
TWI557559B TW104100264A TW104100264A TWI557559B TW I557559 B TWI557559 B TW I557559B TW 104100264 A TW104100264 A TW 104100264A TW 104100264 A TW104100264 A TW 104100264A TW I557559 B TWI557559 B TW I557559B
Authority
TW
Taiwan
Prior art keywords
data
sub
segment
bad page
flash memory
Prior art date
Application number
TW104100264A
Other languages
English (en)
Other versions
TW201626230A (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 TW104100264A priority Critical patent/TWI557559B/zh
Publication of TW201626230A publication Critical patent/TW201626230A/zh
Application granted granted Critical
Publication of TWI557559B publication Critical patent/TWI557559B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

利用快閃記憶體的壞頁來存取資料的方法
本發明與一種快閃記憶體的資料存取方法有關,特別是與一種利用快閃記憶體的壞頁來存取資料的方法有關。
隨著雲端技術以及大數據資料的應用,對於儲存系統的效能需求越來越大。使用NAND快閃記憶體(NAND flash memory)為儲存媒介,再配合適當的控制晶片(controller)進行各種運算處理,所製成的固態硬碟(Solid State Disk,簡稱SSD)已漸漸取代傳統硬碟。顯而易見地,在固態硬碟的基本設計架構中,控制晶片及NAND快閃記憶體是影響固態硬碟的效能及穩定度的重要關鍵。
習知的控制晶片,其功能包括:輸入/輸出的指令(I/O Command)、資料管理(Data Shaping)、磨損均衡技術(Wear Leveling)、空間回收(Garbage Collection)的處理能力,以及電源、快取記憶體(Cache)和損壞區塊(Bad Block)的管理能力等。特別重要的是對TRIM指令的支援方式、以及隨著NAND快閃記憶體的尺寸愈小而愈重要的錯誤檢查及修正機制(Error Checking and Correcting,簡稱ECC)等。以上種種無一不需仰賴控制晶片進行運作,來優化固態硬碟的效能及穩定度。
在NAND快閃記憶體中,儲存資料的最小單元稱為一個記憶胞(cell)。記憶胞是由電晶體所組成,電晶體是由晶圓(Die)所製成。晶圓內部的電晶體組織規劃,基本為頁(Page)、區塊(Block)及資料紀錄矩陣(Plane)。藉由行與列的排序,將每數個「頁」集合成一個「區塊」,每數個「區塊」構成一個「資料紀錄矩陣」。然而,固態硬碟在讀寫資料上有特別的單位限制,最小能被讀寫的單位是「頁」。當一「頁」內已經存有資料時,新資料不能直接被寫入,必須先清除資料再做寫入。清除資料的動作被稱為空間回收 (garbage collection),而固態硬碟是以「區塊(block)」作為清除資料的最小單位。因此,固態硬碟的讀寫與清除資料的最小單位是不對等的。
隨著NAND快閃記憶體的尺寸越來越小,其耐抺寫次數(Programming/Erase Cycle,簡稱P/E Cycle)也越來越少,使得NAND快閃記憶體的使用壽命越來越短,所以NAND快閃記憶體的壽命議題將會越來越重要。一般來說,控制晶片必須用更多先進技術和運算方式來延長NAND快閃記憶體的壽命。
目前改善NAND快閃記憶體的壽命問題最主要使用的方法有:
一、以磨損均衡技術(Wear Leveling)平均地使用快閃記憶體中的每個儲存區塊(Block),以避免某些「特定」儲存區塊因過度使用而形成壞區塊(bad block)。
二、以重複資料刪除技術(Data Deduplication)或是資料壓縮技術(Data Compression)來減少資料的寫入量。
三、次級化快閃記憶體(Downgraded Flash Memory): NAND快閃記憶體中,為了標示不同的資料狀態,在一個記憶胞(Cell)可利用多個位元(Bit)來標示多種狀態。舉一多級儲存單元(Multi-level cell, MLC)為例,MLC在一個記憶胞當中存入2個位元來表示4種狀態,但隨著MLC的磨損,最後會無法正確的區分出4種狀態。但若仍可區分出2種狀態,則可將MLC當成一單級儲存單元(Single Level Cell, SLC)來使用。另一種次級化快閃記憶體的做法是將NAND快閃記憶體中已損壞的儲存區塊(Block)作管理,並且重映射(Remap)到正常的儲存區塊(Block),使得一具有損壞區塊(Block)的NAND快閃記憶體晶片(chip)仍可以正常使用。
綜合以上所述,以往的技術大多著眼於將磨損平均分散、減少資料的寫入量,或是將損壞區塊做管理,但並未考慮如何對已經損壞的區塊重新作利用。
本發明之一目的在於提出一種利用快閃記憶體的壞頁來存取資料的方法,用以延長快閃記憶體的壽命。
為了達到上述目的,本發明提供一種利用快閃記憶體的壞頁來存取資料的方法,此方法包括一寫入程序及一讀取程序,用以將一頁(page)容量大小的一原始資料寫入一具有兩壞頁的快閃記憶體中,並可進行讀取,在以下敘述中,該兩壞頁分別稱為一第一壞頁及一第二壞頁,兩者皆具有複數錯誤位元。
寫入程序包括以下基本步驟:利用一資料分離器(data separator)將原始資料平均拆分成一第一子資料及一第二子資料,並且將第一子資料及第二子資料各別複製一份,形成兩份第一子資料及兩份第二子資料;利用一資料遮蔽器(data masker)將兩份第一子資料其中之一及兩份第二子資料其中之一各別轉換成兩份虛擬資料(dummy data),並且形成一第一資料組及一第二資料組,其中第一資料組包括兩份第一子資料其中的另一加上兩份虛擬資料其中之一,第二資料組包括兩份第二子資料其中的另一加上兩份虛擬資料其中的另一;利用一編碼器根據第一資料組產生一第一同位校正碼,並且根據第二資料組產生一第二同位校正碼;以及將兩份第一子資料及第一同位校正碼合併寫入第一壞頁,並且將兩份第二子資料及第二同位校正碼合併寫入第二壞頁。
讀取程序,包括以下基本步驟:將第一壞頁上的實體儲存空間平均劃分為一第一段及一第二段;資料遮蔽器將儲存於第一段的資料內容轉換成虛擬資料;利用一解碼器根據第一同位校正碼對儲存於第二段的資料內容進行校正,而將儲存於第二段的資料內容還原為第一子資料;將第二壞頁上的實體儲存空間平均劃分為一第三段及一第四段;資料遮蔽器將儲存於第三段的資料內容轉換成虛擬資料;利用解碼器根據第二同位校正碼對儲存於第四段的資料內容進行校正,而將儲存於第四段的資料內容還原為第二子資料;以及利用一資料組合器(data assembler),將還原得到的第一子資料及第二子資料組合成原始資料。
在一實施例中,若解碼器根據第一同位校正碼,無法將儲存於第二段的資料還原為第一子資料,則上述的讀取程序更包括以下步驟:資料遮蔽器判斷該第二段中的該等錯誤位元數量多於該第一段中的該等錯誤位元數量,進而重新選擇將儲存於第二段的資料轉換成虛擬資料,而保留儲存於第一段的資料內容;以及解碼器根據第一同位校正碼(parity)對儲存於第一段的資料內容進行校正,而將儲存於第一段的資料內容還原為第一子資料。
在一實施例中,若解碼器根據第二同位校正碼,無法將儲存於第四段的資料還原為第二子資料,則上述的讀取程序更包括以下步驟:資料遮蔽器判斷該第四段中的該等錯誤位元數量多於該第三段中的該等錯誤位元數量,進而重新選擇將儲存於第四段的資料轉換成虛擬資料,而保留儲存於第三段的資料內容;以及解碼器根據第二同位校正碼對儲存於第三段的資料內容進行校正,而將儲存於第三段的資料內容還原為第二子資料。
在一實施例中,上述之利用快閃記憶體的壞頁來存取資料的方法是應用於一快閃記憶體控制器中。此快閃記憶體控制器電性連接於快閃記憶體,並且具有一快閃記憶體轉換層(Flash Translation Layer, FTL),其中若需要將原始資料拆分並儲存於兩壞頁時,原始資料將會通過快閃記憶體轉換層而傳送至資料分離器。此快閃記憶體控制器是包含於一資料處理系統中,此資料處理系統包括一檔案系統、快閃記憶體控制器、一記憶體技術裝置(Memory Technology Device, MTD)以及快閃記憶體,其中主機產生原始資料,並將原始資料傳送至快閃記憶體轉換層,快閃記憶體轉換層將原始資料輸入資料分離器,資料分離器所輸出的"兩份第一子資料"的資料組及"兩份第二子資料"的資料組,最後被傳送到該記憶體技術裝置,進而寫入該快閃記憶體中。
在一實施例中,第一壞頁及第二壞頁位於快閃記憶體中的同一個晶圓(die)的相鄰兩儲存矩陣(plane)中,並且第一壞頁及第二壞頁在各別的儲存矩陣上具有相同的位移(Offset)。如此,可提供一平行指令給前述的記憶體技術裝置,在將兩份第一子資料及第一同位校正碼合併寫入第一壞頁的同時,也將兩份第二子資料及第二同位校正碼合併寫入第二壞頁。
在一實施例中,所述之利用快閃記憶體的壞頁來存取資料的方法更包括:提供一壞頁記錄器,以記錄第一壞頁與第二壞頁的實體位址。
在一實施例中,第一壞頁具有一第一備用區(spare area),並且第二壞頁具有一第二備用區。在上述寫入程序中,第一同位校正碼被寫入第一備用區,並且第二同位校正碼被寫入第二備用區。
本發明之方法和以往的技術最大的不同在於,本發明之方法可以將NAND快閃記憶體晶片當中已經損壞的「頁」空間回收管理並且再利用,透過本發明之管理層,可以將資料儲存在這些原本已經損壞的頁空間中,並且稍後可以正確的讀出並還原回原始資料,透過壞頁再利用的方式來延長NAND快閃記憶體晶片的壽命。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一較佳實施例的詳細說明中,將可清楚的呈現。以下實施例中所提到的方向用語,例如:上、下、左、右、前或後等,僅是用於參照隨附圖式的方向。因此,該等方向用語僅是用於說明並非是用於限制本發明。
本發明所揭露的利用快閃記憶體的壞頁來存取資料的方法可應用於一資料處理系統的一快閃記憶體控制器中。圖1為一實施例的資料處理系統100的整體架構示意圖。資料處理系統100包括一主機110、一快閃記憶體控制器120、一記憶體技術裝置(Memory Technology Device, MTD)130以及一快閃記憶體140。主機110電性連接於快閃記憶體控制器120;並且記憶體技術裝置130電性連接於快閃記憶體控制器120與快閃記憶體140之間。主機110具有一作業系統111及一檔案系統112。複數應用程式200a, 200b…200n通過作業系統111及檔案系統112的運作,而產生一原始資料。原始資料通過一介面150而從主機110傳送至快閃記憶體控制器120,接著通過記憶體技術裝置130而寫入快閃記憶體140中。本實施例的快閃記憶體140為一NAND快閃記憶體晶片(Chip),其儲存資料的最小硬體單元為一個記憶胞(Cell),記憶胞是由電晶體(Transistor)所組成,電晶體是由晶圓(Die)所製成。晶圓內部的電晶體組織規劃,分為頁(Page)、區塊(Block)及資料紀錄矩陣(Plane)。每數個「頁」集合成一個「區塊」,每數個「區塊」構成一個「資料紀錄矩陣」。
在本發明的實施例中,快閃記憶體控制器120除了具有一快閃記憶體轉換層121(Flash Translation Layer, FTL)及一執行錯誤檢查及修正機制的編碼/解碼器122(ECC Encoder/Decoder)之外,還增加一管理層123(Management Layer)。
快閃記憶體轉換層121包括一邏輯/實體位址轉換模組1211 (Logical/Physical Address Translation)、空間回收模組1212(Garbage Collection)及一磨損均衡模組1213(Wear Leveling)。
管理層123銜接於快閃記憶體轉換層121、錯誤檢查及修正機制的編碼/解碼器122及記憶體技術裝置130三者之間,用來執行一寫入程序,將一頁容量大小的原始資料寫入一具有兩壞頁的快閃記憶體140中,在寫入後,可提供一對應的讀取程序。如此一來,控制器廠商不需要對快閃記憶體控制器120的原有架構作大幅修改,即可達到利用快閃記憶體140的壞頁來存取資料的目的。
管理層123由一壞頁紀錄器1231(Bad Page Recorder)、一資料分離器1232(Data Separator)、資料遮蔽器1233(Data Masker)及一資料組合器1234(Data Assembler)等四個主要的元件所構成,分述如下:
(1) 壞頁記錄器1231:用來記錄目前已損壞「頁」的實體位址(Physical Address)。
(2) 資料分離器1232:在管理層123裡頭需要將一頁容量大小的資料拆成兩半,各別儲存在已損壞的兩個「頁」上,所以需要資料分離器1232來負責資料的拆分與儲存。在本實施例中,資料分離器1232所拆分的原始資料是通過快閃記憶體轉換層121傳遞而來的,拆分後的子資料,則被傳送到記憶體技術裝置130,進而寫入快閃記憶體140中。
(3) 資料遮蔽器1233:透過資料分離器1232將原始資料拆分後的兩份第一子資料與兩份第二子資料,透過資料遮蔽器1233會將各半頁容量大小的子資料替換成虛擬資料(Dummy Data)後,並且形成一第一資料組及一第二資料組,其中第一資料組包括第一子資料加上虛擬資料,第二資料組包括第二子資料加上虛擬資料,再交由ECC編碼/解碼器122進行錯誤檢查及修正編碼(ECC encoding) ,產生與第一資料組及第二資料組相對應的兩個錯誤校正碼。如此一來,可以對一頁容量大小的原始資料使用兩個頁大小的錯誤校正碼,進而重新定義其同位校正碼(Parity)。
(4) 資料組合器1234:由於寫入資料前使用資料分離器1232將原始資料重新安排在兩個「頁」空間中,要讀取時就需要再透過資料組合器1234來還原出原始資料。
參考圖2及圖3,將本實施例的發明概念,說明如下:若錯誤檢查及修正機制(ECC)的校正能力是每頁n個位元(bits/page),那麼當一頁空間中的錯誤位元(Error Bits)數目超過n個時,無法再使用這個頁空間來正確的儲存資料。本實施例中將這樣的頁空間稱為「壞頁(Bad Page)」。若使用本實施例中管理層123,則只要壞頁中的錯誤位元數目不超過2n個,都可以透過管理層123選用任意兩個壞頁來儲存一頁容量大小的原始資料。從原理上來說,假設某個壞頁的錯誤位元數目為2n個,若將這個壞頁的實體儲存空間平均劃分成兩段,則總是可以找到其中一段,其錯誤位元數目是介於0~n之間。
進一步說明請參照圖2,頁PA 有4個錯誤位元,若錯誤檢查及修正機制(ECC)的校正能力是每頁2個位元,則無法校正此頁PA ,因此頁PA 將被視為一壞頁。此時,管理層123會將壞頁PA 的實體儲存空間平均劃分成一第一段S1A 與一第二段S2A 。觀念上可依每段S1A 或S2A 中所含錯誤位元數目的多寡,分別稱之為強段(Strong Segment)與弱段(Weak Segment),強段的錯誤位元數目少於或等於弱段。最佳的情況是壞頁PA 的錯誤位元都聚集於弱段中,則強段沒有錯誤位元的出現,例如壞頁PA 的強段為第二段S2A 。最差的狀況是所有錯誤位元平均分布在兩段中,例如壞頁PB 的一第三段S1B 與一第四段S2B 。儘管是最差狀況,仍是可以使用ECC去校正壞頁PB 的兩段S1B 及/或S1B
如圖3所示,在一實施例中,可將兩個壞頁PA 及PB 組成一個壞頁組Pset (Bad-Page Set)來儲存一頁容量大小的原始資料D0 。透過以上過程,在每個壞頁PA 或PB 裡頭可儲存原始資料D0 的一半大小的內容,例如一第一子資料DA 或一第二子資料DB
關於管理層123在實作上的細節,例如子資料DA 及DB 各別存在壞頁PA 及PB 後的資料結構、將原始資料D0 寫入壞頁PA 及PB ,以及從壞頁PA 及PB 中讀取原始資料D0 的整個流程,詳細地說明如下:
圖4顯示使用管理層123寫入一頁容量大小的原始資料D0 到壞頁組Pset 的過程,寫入程序主要藉由資料分離器1232及資料遮蔽器1233協同完成。當原始資料D0 通過快閃記憶體轉換層121而傳遞給管理層123後,管理層123先利用資料分離器1232將原始資料D0 的內容及大小均分成兩半,形成如圖4所示之第一子資料DA 與第二子資料DB ,並且將子資料DA 與子資料DB 各別複製一份而形成兩頁容量的資料DAA 及DBB ,每頁資料DAA (或DBB )包括兩份的子資料DA (或兩份子資料DB )。如此,當這兩頁資料DAA 及DBB 被寫到壞頁組Pset 時,子資料DA 與DB 分別被儲存到壞頁組Pset 的兩個壞頁PA 及PB 中,且兩份的子資料DA 分別存在壞頁PA 的其中一段S1A (或S2A )以及兩份子資料DB 分別存在壞頁PB 的其中一段S1B (或S2B )中,可以保證DAA (或DBB )中的其中一個DA (或DB )會存在壞頁PA (或PB )的強段當中。接下來使用資料遮蔽器1233分別將複製處理後的第一頁資料DAA 中的其中一份子資料DA 以虛擬資料Du 取代,以及將第二頁資料DBB 中的其中一份子資料DB 以虛擬資料Du 取代,而形成”子資料DA +虛擬資料Du ”與”子資料DB +虛擬資料Du ”等兩資料組DAM1 及DBM1 。然後再將此兩資料組DAM1 及DBM1 各別進行ECC編碼而重新定義出一第一同位校正碼PCA (Parity)與一第二同位校正碼PCB 。校正碼PCA 用以維護半頁大小的子資料DA ;校正碼PCB 用以維護半頁大小的子資料DB 。最後,將第一頁資料DAA 中兩份子資料DA 與校正碼PCA 合併寫到壞頁PA 中;並且將第二頁資料DBB 中兩份子資料DB 與校正碼PCB 合併寫到壞頁PB 中,而完成了寫入程序。實務上,由於每個壞頁PA 或PB 的每段S1A 、S2A 、S1B 或S2B 皆可能有錯誤位元,因此實際存在各段S1A 及S2A 中的資料內容與子資料DA 相比較可能有缺失,另以代號D1A 及D2A 來表示,存於壞頁PA 的資料” D1A +D2A +PCA ”則以DAW 來表示。同理,以DBW 來表示存於壞頁PB 的資料” D1B +D2B +PCB ”。
圖5顯示使用管理層123讀取先前儲存在壞頁組Pset 的資料DAW 及DBW ,並且將其還原為一頁大小的原始資料D0 的過程,讀取程序主要藉由資料組合器1234及資料遮蔽器1233協同完成。同時參照圖2來說明讀取程序的基本步驟如下:
以資料遮蔽器1233對其中一個壞頁PA 選擇其第一段S1A 或第二段S1B 其中之一實體儲存空間作遮蔽,如圖2所示的PAM ,例如:將被遮蔽的一段S1A 中的位元皆填入0,也就是利用資料遮蔽器1233將儲存於第一段S1A 的資料內容D1A 轉換成虛擬資料Du ;利用ECC編碼/解碼器122根據遮蔽處理後的資料組DAM2 ,其包括一第一同位校正碼PCA 、虛擬資料Du 及儲存於第二段S2A 的資料內容D2A ,進行校正而將儲存於第二段S2A 的資料內容D2A 還原為第一子資料DA
同理,以資料遮蔽器1233將儲存於第三段S1B 的資料內容D1B 轉換成虛擬資料Du 。利用ECC編碼/解碼器122根據遮蔽處理後的資料組DBM2 ,其包括第二同位校正碼PCB 、虛擬資料Du 及儲存於第四段S2B 的資料內容,進行校正而將儲存於第四段S2B 的資料內容D2B 還原為第二子資料DB 。最後,利用資料組合器1234,將還原得到的第一子資料DA 及第二子資料DB 組合成原始資料D0 ,並傳回快閃記憶體轉換層121,進而往主機110傳送,而完成讀取程序。
如圖5所示,在一實施例中,若ECC編碼/解碼器122根據第一同位校正碼PCA ,無法將儲存於第二段S2A 的資料內容D2A 還原為第一子資料DA ,則資料遮蔽器1233會判斷第二段S2A 為一弱段,而重新選擇將儲存於第二段S2A 的資料內容D2A 轉換成虛擬資料Du ,並保留儲存於第一段S1A 的資料內容D1A 。之後ECC編碼/解碼器122再根據第一同位校正碼PCA ,對儲存於第一段S1A 的資料內容D1A 進行校正,而將儲存於第一段S1A 的資料內容D1A 還原為第一子資料DA
同理,若ECC編碼/解碼器122根據第二同位校正碼PCB ,無法將儲存於第四段S2B 的資料內容D2B 還原為第二子資料DB ,則資料遮蔽器1233會判斷第四段S2B 為一弱段,而重新選擇將儲存於第四段S2B 的資料內容D2B 轉換成虛擬資料Du ,並保留儲存於第三段S1B 的資料內容D1B 。之後ECC編碼/解碼器122再根據第二同位校正碼PCB ,對儲存於第三段S1B 的資料內容D1B 進行校正,而將儲存於第三段S1B 的資料內容D1B 還原為第二子資料DB
再參照圖3,在一實施例中,管理層123可以在同一個晶圓(die)裡頭相鄰的兩個儲存矩陣(plane)中,選擇具有相同位移的兩個壞頁來組合成一壞頁組Pset 。如此,管理層123可以使用進階的平行指令去操作這兩個壞頁,以減輕資料處理系統100的負擔,並加快處理速度。換句話說,管理層123可提供一平行指令給記憶體技術裝置130,在將兩份第一子資料DA 及第一同位校正碼PCA 合併寫入第一壞頁PA 的同時,也將兩份第二子資料DB 及第二同位校正碼合併寫入第二壞頁PB 。如此,利用"平行指令"來對兩個壞頁同時寫入資料,而不是依時間順序地寫入資料,故可以減少寫入時的處理時間。
在一實施例中,第一壞頁PA 的實體儲存空間包含一第一備用區SaA (Spare Area),並且第二壞頁PB 的實體儲存空間包含一第二備用區SaB 。在上述寫入程序中,第一同位校正碼PCA 被寫入第一備用區SaA ,並且第二同位校正碼PCB 被寫入第二備用區SaB 。由於管理層123使用兩個壞頁PA 及PB 儲存一頁容量大小的原始資料D0 ,所以對於一頁容量大小的原始資料D0 來說,有兩個備用區(Spare Area)可供使用,故可儲存更長的同位校正碼。
在習知技術中,廠商通常為了加速ECC的計算,會使用硬體來實作ECC 編碼/解碼器。以習知的作法,若需要產生更長的同位校正碼就需要增加ECC編碼器的輸出,進而必須要改變ECC編碼器的硬體。然而,本發明的管理層123可以在不改變ECC的硬體的情形下來達到ECC增強的效果。關鍵在於,本發明不是使用一個兩倍大小的ECC同位校正碼來維護一頁容量大小的資料,而是使用兩個正常大小的ECC同位校正碼分別維護兩個半頁容量大小的資料。在對半頁容量大小的資料進行ECC編碼的時候,管理層123將另外半頁的儲存位元皆補上虛擬資料,例如”0”,形成一頁容量大小的資料,以符合一般ECC編碼器的輸入格式。由於補上虛擬資料的那一半的資料內容為已知值,則所產生的ECC同位校正碼只需要保護半頁容量大小的資料。如圖4所示,這也是為什麼要在ECC編碼的時候,進行資料遮蔽而產生虛擬資料的原因。
本發明之方法應用固態硬碟的平台時,可配合Windows XP, Linux (Ubuntu 9), Multimedia和Financial的workload等作業環境。實驗結果顯示,使用本發明的方法在以上4種作業環境下,可以使固態硬碟分別增加48.54%, 28.38%, 65.45%與44.77%的壽命。
本發明之方法和以往的技術最大的不同在於,本發明之方法可以將NAND快閃記憶體晶片當中已經損壞的「頁」空間回收管理並且再利用,透過本發明之管理層,可以將資料儲存在這些原本已經損壞的頁空間中,並且稍後可以正確的讀出並還原回原始資料,透過壞頁再利用的方式來延長NAND快閃記憶體晶片的壽命。
本發明和已知先前技術,其共同的目的都在於解決快閃記憶體的壽命問題,不同之處在於本發明考慮到先前技術所沒有注意到的特性, 亦即,重新利用原本已經損壞的快閃記憶體區塊。透過本發明所設計的軟體管理層,壞頁可以轉換成正常頁繼續使用。本發明的管理層與先前技術沒有衝突,所以本發明可以任意的附加在先前技術上,進一步地延長快閃記憶體的壽命。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧資料處理系統
110‧‧‧主機
111‧‧‧作業系統
112‧‧‧檔案系統
120‧‧‧快閃記憶體控制器
121‧‧‧快閃記憶體轉換層
1211‧‧‧邏輯/實體位址轉換模組
1212‧‧‧空間回收模組
1213‧‧‧磨損均衡模組
122‧‧‧執行錯誤檢查及修正機制的編碼/解碼器
123‧‧‧管理層
1231‧‧‧壞頁紀錄器
1232‧‧‧資料分離器
1233‧‧‧資料遮蔽器
1234‧‧‧資料組合器
130‧‧‧記憶體技術裝置
140‧‧‧快閃記憶體
200a,200b…200n‧‧‧複數應用程式
150‧‧‧介面
PA、PB‧‧‧壞頁
PAM、PBM‧‧‧壞頁(經遮蔽處理)
S1A、S2A‧‧‧壞頁PA中的實體儲存空間分段
S1B、S2B‧‧‧壞頁PB中的實體儲存空間分段
SaA‧‧‧壞頁PA中的備用區
SaB‧‧‧壞頁PB中的備用區
Pset‧‧‧壞頁組
D0‧‧‧原始資料
DA‧‧‧第一子資料
DB‧‧‧第二子資料
DAA、DBB‧‧‧寫入程序中資料分離器輸出的資料
Du‧‧‧虛擬資料
DAM1、DBM1‧‧‧寫入程序中資料遮蔽器輸出的資料組
DAM2、DBM2‧‧‧讀取程序中資料遮蔽器輸出的資料組
PCA‧‧‧第一同位校正碼
PCB‧‧‧第二同位校正碼
DAW‧‧‧實際存於壞頁PA的資料
DBW‧‧‧實際存於壞頁PB的資料
D1A、D2A‧‧‧實際存於壞頁PA的子資料
D1B、D2B‧‧‧實際存於壞頁PB的子資料
圖1為應用本發明之方法的資料處理系統的整體架構示意圖。
圖2為本發明之一實施例的壞頁及其判斷強段/弱段的方法示意圖。
圖3為本發明之一實施例的原始資料重新安排後儲存於壞頁組結構示意圖。
圖4為本發明之一實施例的管理層之資料寫入程序示意圖。
圖5為本發明之一實施例的管理層之資料讀取程序示意圖。
1232‧‧‧資料分離器
1233‧‧‧資料遮蔽器
122‧‧‧執行錯誤檢查及修正機制的編碼/解碼器
Pset‧‧‧壞頁組
PA、PB‧‧‧壞頁
S1A、S2A‧‧‧壞頁PA中的實體儲存空間分段
S1B、S2B‧‧‧壞頁PB中的實體儲存空間分段
SaA‧‧‧壞頁PA中的備用區
SaB‧‧‧壞頁PB中的備用區
D0‧‧‧原始資料
DA‧‧‧第一子資料
DB‧‧‧第二子資料
DAA、DBB‧‧‧寫入程序中資料分離器輸出的資料
Du‧‧‧虛擬資料
DAM1、DBM1‧‧‧寫入程序中資料遮蔽器輸出的資料組
DAM2、DBM2‧‧‧讀取程序中資料遮蔽器輸出的資料組
PCA‧‧‧第一同位校正碼
PCB‧‧‧第二同位校正碼
DAW‧‧‧實際存於壞頁PA的資料
DBW‧‧‧實際存於壞頁PB的資料
D1A、D2A‧‧‧實際存於壞頁PA的子資料
D1B、D2B‧‧‧實際存於壞頁PB的子資料

Claims (10)

  1. 一種利用快閃記憶體的壞頁來存取資料的方法,該方法包括一寫入程序,用以將一頁(page)容量大小的一原始資料寫入一快閃記憶體中,該快閃記憶體至少包括一第一壞頁及一第二壞頁,其中該第一壞頁及該第二壞頁皆包括複數錯誤位元,其中該寫入程序包括以下步驟: 利用一資料分離器(data separator)將該原始資料平均拆分成一第一子資料及一第二子資料,並且將該第一子資料及該第二子資料各別複製一份,形成兩份該第一子資料及兩份該第二子資料; 利用一資料遮蔽器(data masker)將該兩份第一子資料其中之一及該兩份第二子資料其中之一轉換成兩份虛擬資料(dummy data),並且形成一第一資料組及一第二資料組,其中該第一資料組包括該兩份第一子資料其中的另一加上該兩份虛擬資料其中之一,該第二資料組包括該兩份第二子資料其中的另一加上該兩份虛擬資料其中的另一; 利用一編碼器根據該第一資料組產生一第一同位校正碼,並且根據該第二資料組產生一第二同位校正碼;以及 將該兩份第一子資料及該第一同位校正碼合併寫入該第一壞頁,並且將該兩份第二子資料及該第二同位校正碼合併寫入該第二壞頁。
  2. 如申請專利範圍第1項所述之利用快閃記憶體的壞頁來存取資料的方法,更包括一讀取程序,其步驟包括: 將該第一壞頁上的實體儲存空間平均劃分為一第一段及一第二段; 該資料遮蔽器將儲存於該第一段的資料內容轉換成該虛擬資料; 利用一解碼器根據該第一同位校正碼對儲存於該第二段的資料內容進行校正,而將儲存於該第二段的資料內容還原為該第一子資料; 將該第二壞頁上的實體儲存空間平均劃分為一第三段及一第四段; 該資料遮蔽器將儲存於該第三段的資料內容轉換成該虛擬資料; 利用該解碼器根據該第二同位校正碼對儲存於該第四段的資料內容進行校正,而將儲存於該第四段的資料內容還原為該第二子資料;以及 利用一資料組合器(data assembler),將還原得到的該第一子資料及該第二子資料組合成該原始資料。
  3. 如申請專利範圍第2項所述之利用快閃記憶體的壞頁來存取資料的方法,若該解碼器根據該第一同位校正碼,無法將儲存於該第二段的資料還原為該第一子資料,則該讀取程序更包括: 該資料遮蔽器判斷該第二段中的該等錯誤位元數量多於該第一段中的該等錯誤位元數量,進而重新選擇將儲存於該第二段的資料轉換成該虛擬資料,而保留儲存於該第一段的資料內容;以及 該解碼器根據該第一同位校正碼(parity)對儲存於該第一段的資料內容進行校正,而將儲存於該第一段的資料內容還原為該第一子資料。
  4. 如申請專利範圍第2項所述之利用快閃記憶體的壞頁來存取資料的方法,若該解碼器根據該第二同位校正碼,無法將儲存於該第四段的資料還原為該第二子資料,則該讀取程序更包括: 該資料遮蔽器判斷該第四段中的該等錯誤位元數量多於該第三段中的該等錯誤位元數量,進而重新選擇將儲存於該第四段的資料轉換成該虛擬資料,而保留儲存於該第三段的資料內容;以及 該解碼器根據該第二同位校正碼對儲存於該第三段的資料內容進行校正,而將儲存於該第三段的資料內容還原為該第二子資料。
  5. 如申請專利範圍第2項所述之利用快閃記憶體的壞頁來存取資料的方法,其應用於一快閃記憶體控制器中,該快閃記憶體控制器電性連接於該快閃記憶體,並且具有一快閃記憶體轉換層(Flash Translation Layer, FTL),其中若需要將該原始資料拆分並儲存於該第一壞頁及該第二壞頁時,該原始資料會通過該快閃記憶體轉換層而傳送至該資料分離器。
  6. 如申請專利範圍第5項所述之利用快閃記憶體的壞頁來存取資料的方法,其應用於一資料處理系統中,該資料處理系統包括一主機、該快閃記憶體控制器、一記憶體技術裝置(Memory Technology Device, MTD)以及該快閃記憶體,其中該主機產生該原始資料,並將該原始資料傳送至該快閃記憶體轉換層,該快閃記憶體轉換層將該原始資料輸入該資料分離器,該資料分離器輸出一包含該兩份第一子資料的資料組及一包含該兩份第二子資料的資料組,並將其傳送到該記憶體技術裝置,進而寫入該快閃記憶體中。
  7. 如申請專利範圍第6項所述之利用快閃記憶體的壞頁來存取資料的方法,更包括: 選擇該第一壞頁及該第二壞頁的位置,使其位於該快閃記憶體中的同一個晶圓(die)的相鄰兩儲存矩陣(plane)中,並且該第一壞頁及該第二壞頁在各別的該儲存矩陣上具有相同的位移。
  8. 如申請專利範圍第7項所述之利用快閃記憶體的壞頁來存取資料的方法,更包括:提供一平行指令給該記憶體技術裝置,在將該兩份第一子資料及該第一同位校正碼合併寫入該第一壞頁的同時,也將該兩份第二子資料及該第二同位校正碼合併寫入該第二壞頁。
  9. 如申請專利範圍第1項所述之利用快閃記憶體的壞頁來存取資料的方法,更包括:提供一壞頁記錄器,以記錄該第一壞頁與該第二壞頁的實體位址。
  10. 如申請專利範圍第1項所述之利用快閃記憶體的壞頁來存取資料的方法,其中該第一壞頁具有一第一備用區(spare area),並且該第二壞頁具有一第二備用區,在該寫入程序中,該第一同位校正碼被寫入該第一備用區,並且該第二同位校正碼被寫入該第二備用區。
TW104100264A 2015-01-06 2015-01-06 利用快閃記憶體的壞頁來存取資料的方法 TWI557559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW104100264A TWI557559B (zh) 2015-01-06 2015-01-06 利用快閃記憶體的壞頁來存取資料的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104100264A TWI557559B (zh) 2015-01-06 2015-01-06 利用快閃記憶體的壞頁來存取資料的方法

Publications (2)

Publication Number Publication Date
TW201626230A TW201626230A (zh) 2016-07-16
TWI557559B true TWI557559B (zh) 2016-11-11

Family

ID=56985136

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104100264A TWI557559B (zh) 2015-01-06 2015-01-06 利用快閃記憶體的壞頁來存取資料的方法

Country Status (1)

Country Link
TW (1) TWI557559B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759370B (zh) * 2017-01-23 2022-04-01 韓商愛思開海力士有限公司 記憶體裝置、記憶體系統及其操作方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI617917B (zh) * 2017-08-28 2018-03-11 慧榮科技股份有限公司 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置
JP2019057172A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
CN111831470B (zh) * 2019-04-18 2024-03-08 上海川源信息科技有限公司 磁盘阵列***的数据还原方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339537A (zh) * 2008-08-14 2009-01-07 四川登巅微电子有限公司 一种以页为单位的nand闪存管理方法
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
US20120260149A1 (en) * 2011-04-06 2012-10-11 Samsung Electronics Co., Ltd. Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
TW201426305A (zh) * 2012-12-28 2014-07-01 Infomicro Electronics Shenzhen Ltd 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
CN101339537A (zh) * 2008-08-14 2009-01-07 四川登巅微电子有限公司 一种以页为单位的nand闪存管理方法
US20120260149A1 (en) * 2011-04-06 2012-10-11 Samsung Electronics Co., Ltd. Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
TW201426305A (zh) * 2012-12-28 2014-07-01 Infomicro Electronics Shenzhen Ltd 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759370B (zh) * 2017-01-23 2022-04-01 韓商愛思開海力士有限公司 記憶體裝置、記憶體系統及其操作方法

Also Published As

Publication number Publication date
TW201626230A (zh) 2016-07-16

Similar Documents

Publication Publication Date Title
TWI527037B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
US8788876B2 (en) Stripe-based memory operation
US8904261B2 (en) Data management in solid state storage devices
KR101491943B1 (ko) 트랜잭션 로그 복구
TWI537816B (zh) 非揮發性儲存裝置與控制器進行的控制方法
US10127166B2 (en) Data storage controller with multiple pipelines
TWI484334B (zh) 非揮發記憶體的區域式管理方法
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN103718162A (zh) 用于ssd中灵活的raid的方法和设备
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
KR20120060236A (ko) 파워 인터럽트 관리
JP6696280B2 (ja) 情報処理装置、raid制御方法、およびraid制御プログラム
TWI557559B (zh) 利用快閃記憶體的壞頁來存取資料的方法
KR20110024832A (ko) 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
EP3841474A1 (en) Data recovery within a memory sub-system
TW201312351A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TW202211029A (zh) 非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法
KR20190027279A (ko) 플래시 저장 장치에서의 선택적 소거 코딩을 이용한 데이터 손실 복원 방법 및 장치

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees