TWI617917B - 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 - Google Patents
用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 Download PDFInfo
- Publication number
- TWI617917B TWI617917B TW106129148A TW106129148A TWI617917B TW I617917 B TWI617917 B TW I617917B TW 106129148 A TW106129148 A TW 106129148A TW 106129148 A TW106129148 A TW 106129148A TW I617917 B TWI617917 B TW I617917B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- super
- blocks
- damaged
- data storage
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
-
- 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
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- 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/7206—Reconfiguration of flash memory system
-
- 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/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種資料儲存裝置,具有一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個儲存矩陣,並且儲存矩陣之每一者包括複數個區塊。每一儲存矩陣之一部分區塊組合成一超級區塊,使得快閃記憶體包括複數個超級區塊。控制器耦接快閃記憶體,用以當超級區塊中的至少一第一超級區塊中的一第一區塊發生損毀,並且超級區塊中的一第二超級區塊中對應損毀區塊之位置之一第二區塊為正常時,控制器將第二超級區塊之第二區塊合併到第一超級區塊以取代第一區塊。隨機存取記憶體,儲存一壓縮表格用以紀錄第一區塊於第一超級區塊中之位置資訊以及第二區塊之編號資訊。
Description
本發明係關於一用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置,特別係關於一種藉由壓縮表格紀錄資料區塊之重組與合併之資料儲存裝置與資料儲存方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)、通用快閃記憶體(UFS)…等使用。
由於快閃記憶體具有許多資料區塊,而這些資料區塊可能會因為長時間的使用而發生損毀,造成資料無法正常寫入或讀取。因此,需要一種能夠有效率的對資料區塊之進行重組與合併之資料儲存裝置與資料儲存方法,以確保資料存取之效能與可靠度。
為了解決上述問題,本發明提出一種用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置,能夠有效率的針對損毀之資料區塊之進行重組與合併,以獲得更多沒有損毀
之超級區塊。此外,本發明係以壓縮表格針對有變更與合併之部分區塊進行紀錄,避免佔用太多記憶體空間,以有效確保資料存取之效能與可靠度。
本發明之一實施例提供了一種資料儲存裝置,具有一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個儲存矩陣(plane),並且儲存矩陣之每一者包括複數個區塊(block)。每一儲存矩陣之一部分區塊組合成一超級區塊(super block),使得快閃記憶體包括複數個超級區塊。控制器耦接快閃記憶體,用以當超級區塊中的至少一第一超級區塊中的一第一區塊發生損毀,並且超級區塊中的一第二超級區塊中對應損毀區塊之位置之一第二區塊為正常時,將第二超級區塊之第二區塊合併到第一超級區塊以取代第一區塊。隨機存取記憶體,儲存一壓縮表格用以紀錄第一區塊於第一超級區塊中之位置資訊以及第二區塊之編號資訊。
本發明之一實施例提供了一種用於優化資料儲存裝置之資料儲存方法,資料儲存裝置具有一快閃記憶體、一控制器以及一隨機存取記憶體,其中快閃記憶體包括複數個儲存矩陣,並且儲存矩陣之每一者包括複數個區塊。資料儲存方法包括:將每一儲存矩陣之一部分區塊組合成一超級區塊,使得快閃記憶體包括複數個超級區塊;當超級區塊中的至少一第一超級區塊中的一第一區塊發生損毀,並且超級區塊中的一第二超級區塊中對應損毀區塊之位置之一第二區塊為正常時,將第二超級區塊之第二區塊合併到第一超級區塊以取代第一區塊;以及儲存一壓縮表格用以紀錄第一區塊於第一超級區塊中之
位置資訊以及第二區塊之編號資訊。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與資料儲存方法。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧快閃記憶體
160-16N‧‧‧儲存矩陣
160_A、160_Z...16N_A、16N_Z‧‧‧區塊
160_A_1、160_Z_1...16N_A_X、16N_Z_X‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
DT、DT1、DT2‧‧‧壓縮表格
NDT、NDT1...NDT6‧‧‧非壓縮表格
XBLK0、XBLK1...XBLKZ‧‧‧超級區塊
S200...S424‧‧‧步驟
根據以下的詳細說明並配合所附圖式做完整揭露。應注意的是,根據本產業的一般作業,圖示並未必按照比例繪製。
事實上,可能任意的放大或縮小元件的尺寸,以做清楚的說明。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置與主機之示意圖;第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖;第3圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖;第4A~4C圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、快閃記憶體140以及隨機存取記憶體(RAM)180。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。快閃記憶體140可以為非揮發性記憶體,例如反集閘快閃記憶體(NAND Flash)。資料儲存裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。主機200可以為手機、平板電腦、筆記型電腦、導航機、車載系統等各種電子產品、或上述各種電子產品中的處理器。
如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。隨機存取記憶體180用以暫存以及預取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體140之資料,以加快資料儲存裝置100之存取時間。控制器120藉由控制快閃記憶體140以叢集(cluster)為單位執行讀取運作的方式來對快閃記憶體140執行讀取運作。此外,控制器120耦接快閃記憶體140以相互傳送資料與指令或接收資料與指令。進一步而言,控制器120可包括具有韌體碼之唯讀記憶體(ROM)以及微控制器,並且微控制器執行韌體碼以操作或是存取快閃記憶體140。
快閃記憶體140包括複數個儲存矩陣(plane)160~16N。詳細而言,儲存矩陣160~16N中的每一者更包括複數個區塊(block)160_A~16N_Z。在一實施例中,快閃記
憶體140具有4個儲存矩陣160~164(亦即CE0~CE3)。儲存矩陣160包括區塊160_A~160_Z,儲存矩陣16N包括區塊16N_A~16N_Z。對於儲存矩陣160而言,區塊160_A~160_Z中的每一者更包括複數個實體頁面。區塊160_A包括實體頁面160_A_1~160_A_X,區塊160_Z包括實體頁面160_Z_1~160_Z_X。控制器120在對快閃記憶體140執行寫入或儲存動作時,是藉由控制快閃記憶體140以實體頁面為單位來執行寫入或程式化的運作。
對於快閃記憶體140而言,其實體頁面160_A_1~16N_Z_X的每一者皆具有不同的實體位址。換言之,實體頁面160_A_1~16N_Z_X的每一者都具有一個實體位址,而實體頁面160_A_1~16N_Z_X的每一者的實體位址都是不同的。當資料儲存裝置100執行一寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入或儲存資料。此外,控制器120則分別對應上述複數個實體位址至複數個邏輯位址。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
在一實施例中,每一儲存矩陣160~16N之一部分區塊組合成一超級區塊(super block),使得快閃記憶體140包括複數個超級區塊。當超級區塊中的至少一第一超級區塊中的一第一區塊發生損毀,並且超級區塊中的一第二超級區塊中對應損毀區塊之位置之一第二區塊為正常時,將第二超級區塊之第二區塊合併到第一超級區塊以取代第一區塊。隨機存取記憶體180則儲存一壓縮表格DT,以紀錄第一區塊於第一超級區塊中
之位置資訊以及第二區塊之編號資訊。在另一實施例中,隨機存取記憶體180則儲存一非壓縮表格NDT,以紀錄第一超級區塊之每一位置資訊及其對應區塊之編號資訊。舉例而言,非壓縮表格NDT以及壓縮表格DT係如下所示:
如上述之非壓縮表格NDT1所示,超級區塊XBLK0係由儲存矩陣160之編號0和1的區塊、儲存矩陣161之編號0和1的區塊、儲存矩陣162之編號0和1的區塊、以及儲存矩陣163之編號0和1的區塊等八個區塊所構成。舉例而言,儲存矩陣160之編號0的區塊為區塊160_A,儲存矩陣160之編號1的區塊為區塊160_B,儲存矩陣161之編號0的區塊為區塊161_A,以此類推。超級區塊XBLK1係由儲存矩陣160之編號2和3的區塊、儲存矩陣161之編號2和3的區塊、儲存矩陣162之編號2和3的區塊、以及儲存矩陣163之編號2和3的區塊等八個區塊所構成。舉例而言,儲存矩陣160之編號2的區塊為區塊160_C,儲存矩陣160之編號3的區塊為區塊160_D,儲存矩陣161之編號2的區塊為區塊161_C,以此類推。
然後,超級區塊XBLK0之儲存矩陣163之編號1的
區塊(亦即區塊163_A)發生損毀。詳細而言,當儲存矩陣163之區塊163_A沒有成功寫入一資料、或是區塊163_A沒有成功進行抹除操作時,則控制器120判斷區塊163_A為損毀。此外,在此實施例中,超級區塊XBLK1之儲存矩陣161之編號3的區塊、儲存矩陣162之編號3的區塊以及儲存矩陣166之編號2的區塊也發生損毀。
當控制器120偵測到上述損毀區塊時,則將其他超級區塊中的正常區塊合併到上述發生損毀之超級區塊XBLK0與XBLK1,並且取代上述損毀區塊。然後,隨機存取記憶體180所儲存之壓縮表格DT以及非壓縮表格NDT則進行更新以記錄上述區塊變更及合併的相關資訊。以下為更新後之壓縮表格DT1以及非壓縮表格NDT2。在非壓縮表格NDT2中,標註部分即為損毀區塊之編號。要注意的是,上述標註僅係用以方便說明,實際上非壓縮表格NDT可不進行標註。
在此實施例之非壓縮表格NDT2中,記錄了其他超級區塊之編號5之區塊取代了超級區塊XBLK0之位置7之區塊,
其他超級區塊之編號8之區塊取代了超級區塊XBLK1之位置3之區塊,其他超級區塊之編號7之區塊取代了超級區塊XBLK1之位置5之區塊,以此類推。因此,經過區塊之合併與取代後,2個超級區塊XBLK0與XBLK1都是沒有損毀之超級區塊。
由於非壓縮表格NDT1紀錄了全部區塊之資訊,當存取的資料量大時,就會占用許多隨機存取記憶體180之空間。因此,本發明提出了以壓縮表格DT2來記錄原本分壓縮表格NDT2中有發生變動之資訊,以節省記憶體之空間並且加速存取速度。
以下為壓縮表格DT2之示意圖:
如上所述,奇數欄位1~7為被合併之正常區塊之編號資訊,偶數欄位2~8為損毀區塊之位置資訊。在壓縮表格DT1中,超級區塊XBLK0之資訊5與7表示非壓縮表格NDT2之位置7的區塊被其他超級區塊之編號5之區塊所取代。同樣地,超級區塊XBLK1之資訊8與3表示非壓縮表格NDT2之位置3的區塊被其他超級區塊之編號8之區塊所取代,資訊7與5表示非壓縮表格NDT2之位置5的區塊被其他超級區塊之編號7之區塊所取代,以此類推。
要注意的是,控制器120判斷超級區塊中損毀區塊的數量是否大於全部區塊之一半數量。如果超級區塊中損毀區塊的數量沒有大於全部區塊之一半數量,則控制器120使用壓縮表格DT加以記錄,並且儲存於隨機存取記憶體180。如果超級區塊中損毀區塊的數量大於全部區塊之一半數量,則控制器120使用壓縮表格DT也無法有效降低表格之尺寸,則使用非壓縮表格NDT加以記錄,並且儲存於隨機存取記憶體180。
以下將介紹如何藉由正常區塊以及損毀區塊之對應關係以及數量,進行區塊之合併,並且必要時將超級區塊進行分割,以決定出可用於合併之正常區塊。
在非壓縮表格NDT3之實施例中,包括了5個超級區塊XBLK0~XBLK4,其中X表示該位置之區塊為損毀區塊。首先,控制器120找出5個超級區塊XBLK0~XBLK4中損毀區塊之數量最少者,優先合併正常取塊以進行修復。如非壓縮表格NDT3所示,超級區塊XBLK3只有1個損毀區塊並且其數量小於其他超級區塊。然後,控制器120判斷其他超級區塊對應於超級區塊XBLK3之損毀位置7之區塊是否為正常。在此實施例中,由於超級區塊XBLK4之位置7的區塊為正常並且其他區塊皆損毀,剛好是超級區塊XBLK3之完整互補(perfect match)。因此,控制器120合併超級區塊XBLK3與XBLK4,以獲得全部區塊都正常之超級區塊XBLK3,並且將記錄表格更新為非壓縮表格NDT4。
要注意的是,如果超級區塊XBLK3具有2個損毀區塊,但是有其他兩個超級區塊,各自具有一對應位置為正常區塊,則表示上述兩個超級區塊與超級區塊XBLK3為完整互補,則控制器120合併該等兩個超級區塊至超級區塊XBLK3。換言之,本發明之資料控制方法會對現有的超級區塊進行合併,如果無法合併則進行分割,也就是將一個超級區塊分割為複數個子超級區塊。
舉例而言,對於非壓縮表格NDT4而言,目前已無法再合併。然而,超級區塊XBLK0還沒有進行區塊合併與修復。因為超級區塊XBLK2之正常區塊的數量大於超級區塊XBLK0之損毀區塊的數量,並且超級區塊XBLK2中對應超級區塊XBLK0之損毀位置之區塊為正常區塊,因此控制器120將超級區塊XBLK2分割為2個超級區塊XBLK2_A以及XBLK2_B(亦即子超級區塊)。非壓縮表格NDT4也對應更新為下述之非壓縮表格NDT5。
在此實施例中,分割後之超級區塊XBLK2_B與超級區塊XBLK0為完整互補,因此控制器120合併超級區塊XBLK2_B與超級區塊XBLK0,以修復超級區塊XBLK0。要注意的是,由於超級區塊XBLK1還沒有進行區塊合併與修復,並且超級區塊XBLK2_A之正常區塊的數量大於超級區塊XBLK1之損毀區塊的數量,超級區塊XBLK2_A中對應超級區塊XBLK1之損毀位置之區塊為正常區塊。因此,控制器120進一步分割超級區塊XBLK2_A為2個超級區塊XBLK2_A_1以及XBLK2_A_2,以修復超級區塊XBLK1。修復後之超級區塊XBLK1為沒有損毀之超級區塊。更新後之非壓縮表格NDT6如下所示。
由於分割後之XBLK2_A_1與超級區塊XBLK1為完整互補,因此控制器120合併超級區塊XBLK2_A_1與超級區塊XBLK1,以修復超級區塊XBLK1。更新後之非壓縮表格NDT7如下所示。
在原本的非壓縮表格NDT3之實施例中,5個超級區
塊XBLK0~XBLK4都是具有損毀的超級區塊。經過本發明所提供之區塊分割與合併之方法後,如非壓縮表格NDT6所示,可產生3個全部正常的超級區塊XBLK0、XBLK1與XBLK3,大幅提升快閃記憶體160之使用效率。
第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。在步驟S200,控制器120將快閃記憶體140之每一儲存矩陣160~16N之一部分區塊組合成一超級區塊,使得快閃記憶體140具有複數個超級區塊。然後,在步驟S202,控制器120上述超級區塊中的至少一第一超級區塊中的第一區塊是否發生損毀。如果沒有發生損毀,則回到步驟S202。如果發生損毀,則執行步驟S204,控制器120判斷上述超級區塊中的一第二超級區塊中對應該損毀區塊之位置之第二區塊是否為正常區塊。
如果判斷第二區塊不是正常區塊,則回到步驟S204。如果判斷第二區塊為正常區塊,則執行步驟S206,控制器120將該第二超級區塊之該第二區塊合併到該第一超級區塊,以取代該第一區塊並且修復第一超級區塊。然後,在步驟S208,隨機存取記憶體180儲存一壓縮表格DT,用以紀錄該第一區塊於該第一超級區塊中之位置資訊以及該第二區塊之編號資訊。
第3圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。在步驟S300,控制器120判斷判斷是否有第一超級區塊中的第一區塊發生損毀。如果沒有損毀,則回到步驟S300。如果有損毀,則執行步驟S302,控制器120將第二超
級區塊中對應第一區塊之位置之正常的第二區塊合併到該第一超級區塊以取代第一區塊。
然後,在步驟S304,控制器120判斷第一超級區塊中損毀之第一區塊的數量是否大於第一超級區塊之全部區塊之一半數量。如果損毀區塊之數量沒有大於全部區塊之一半數量,則執行步驟S306,控制器120使用壓縮表格紀錄第一區塊於第一超級區塊中之位置資訊以及第二區塊之編號資訊。如果損毀區塊之數量大於全部區塊之一半數量,則執行步驟S308,控制器120使用非壓縮表格紀錄第一超級區塊之每一位置資訊及其對應區塊之編號資訊。
第4A~4C圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。在步驟S400,控制器120判斷判斷是否有複數個第一超級區塊中的至少一第一區塊發生損毀。如果沒有損毀,則回到步驟S400。如果有損毀,則執行步驟S402,控制器120比較該等第一超級區塊發生損毀之第一區塊的數量。在步驟S404,控制器120判斷第二超級區塊中對應該損毀區塊之位置之第二區塊是否為正常。如果第二區塊為正常區塊,則執行步驟S406,控制器120優先將第二超級區塊之第二區塊合併到損毀之該第一區塊數量最少的第一超級區塊以取代其第一區塊。
此外,如果第二區塊為損毀區塊,則執行步驟S408,控制器120判斷是否能合併複數個第二超級區塊之複數個第二區塊至該第一超級區塊以取代其第一區塊。如果能,則執行步驟S414,控制器120合併複數個第二超級區塊之複數個第二區
塊至該第一超級區塊以取代其第一區塊。如果不能,則執行步驟S410,控制器120將第二超級區塊分割為第一子超級區塊以及第二子超級區塊。然後執行步驟S412,控制器120將第一子超級區塊之第二區塊合併到第一超級區塊以取代該等一區塊,並且保留第二子超級區塊以進行其他合併。
然後,在步驟S416,控制器120判斷第三超級區塊之第三區塊是否發生損毀。如果沒有損毀,則回到步驟S416。如果發生損毀,則執行步驟S418,控制器120判斷第二子超級區塊中對應該損毀區塊之位置之一第四區塊是否為正常,並且第二子超級區塊之正常區塊之數量大於第三區塊之數量。如果否,則回到步驟S418;如果是,則執行步驟S420,控制器120將第二子超級區塊分割為第三子超級區塊以及第四子超級區塊。
然後,執行步驟S422,控制器120判斷第四子超級區塊中對應該損毀區塊之位置之一第五區塊是否為正常。如果第五區塊不是正常區塊,則回到步驟S422;如果第五區塊為正常區塊,則執行步驟S424,控制器120將第四子超級區塊之第五區塊合併到該第三超級區塊以取代該第三區塊。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何
傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S200...S208‧‧‧步驟
Claims (20)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數個儲存矩陣(plane),其中該等儲存矩陣之每一者包括複數個區塊(block),並且該每一儲存矩陣之一部分區塊組合成一超級區塊(super block),使得該快閃記憶體包括複數個超級區塊;一控制器,耦接該快閃記憶體,用以當該等超級區塊中的至少一第一超級區塊中的至少一第一區塊發生損毀,並且該等超級區塊中的至少一第二超級區塊中對應該損毀區塊之位置之至少一第二區塊為正常時,將該第二超級區塊之該第二區塊合併到該第一超級區塊以取代該第一區塊;以及一隨機存取記憶體,儲存一壓縮表格用以紀錄該第一區塊於該第一超級區塊中之位置資訊以及該第二區塊之編號資訊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該第一區塊沒有成功寫入一資料、或是該第一區塊沒有成功進行抹除操作時,則該控制器判斷該第一區塊為損毀。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器判斷該第一超級區塊中損毀之該第一區塊的數量是否大於該第一超級區塊之全部區塊之一半數量。
- 如申請專利範圍第3項所述之資料儲存裝置,其中當該第一超級區塊中發生損毀之該第一區塊的數量大於該第一超級區塊之全部區塊之一半數量時,該隨機存取記憶體使用該壓縮表格來進行紀錄,當該第一超級區塊中發生損毀之區塊的 數量並未大於該第一超級區塊之全部區塊之一半數量時,該隨機存取記憶體使用一非壓縮表格來進行紀錄。
- 如申請專利範圍第4項所述之資料儲存裝置,其中該非壓縮表格係紀錄該第一超級區塊之每一位置資訊及其對應區塊之編號資訊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該等超級區塊中的該等第一超級區塊具有至少一損毀之該第一區塊時,該控制器比較該等第一超級區塊發生損毀之該第一區塊的數量,並且優先將該第二超級區塊之該第二區塊合併到損毀之該第一區塊數量較少的該第一超級區塊以取代該第一區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器判斷該第一超級區塊具有複數個損毀的第一區塊,並且該等超級區塊中的複數個第二超級區塊中對應該等第一區塊之位置之複數個第二區塊為正常時,該控制器將該等第二超級區塊之該等第二區塊合併到該第一超級區塊以取代該等第一區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該第一超級區塊中的該第一區塊發生損毀,該第二超級區塊中對應該損毀區塊之位置之該第二區塊為正常,並且該第二超級區塊之正常區塊之數量大於該第一區塊之數量時,該控制器將該第二超級區塊分割為第一子超級區塊以及第二子超級區塊,並且將該第一子超級區塊之該第二區塊合併到該第一超級區塊以取代該等一區塊。
- 如申請專利範圍第8項所述之資料儲存裝置,其中當該等超級區塊中之第三超級區塊之第三區塊發生損毀,並且該第二子超級區塊中對應該損毀區塊之位置之一第四區塊為正常時,該控制器將該第二子超級區塊之該第四區塊合併到該第三超級區塊以取代該第三區塊。
- 如申請專利範圍第8項所述之資料儲存裝置,其中當該等超級區塊中之第三超級區塊之第三區塊發生損毀,該第二子超級區塊中對應該損毀區塊之位置之一第四區塊為正常,並且該第二子超級區塊之正常區塊之數量大於該第三區塊之數量時,該控制器將該第二子超級區塊分割為第三子超級區塊以及第四子超級區塊,並且當該第四子超級區塊中對應該損毀區塊之位置之一第五區塊為正常時,將該第四子超級區塊之一第五區塊合併到該第三超級區塊以取代該第三區塊。
- 一種用於優化資料儲存裝置之資料儲存方法,該資料儲存裝置具有一快閃記憶體、一控制器以及一隨機存取記憶體,其中該快閃記憶體包括複數個儲存矩陣(plane),並且該等儲存矩陣之每一者包括複數個區塊(block),該資料儲存方法包括:將該每一儲存矩陣之一部分區塊組合成一超級區塊(super block),使得該快閃記憶體包括複數個超級區塊;當該等超級區塊中的至少一第一超級區塊中的至少一第一區塊發生損毀,並且該等超級區塊中的至少一第二超級區塊中對應該損毀區塊之位置之至少一第二區塊為正常時, 將該第二超級區塊之該第二區塊合併到該第一超級區塊以取代該第一區塊;以及儲存一壓縮表格用以紀錄該第一區塊於該第一超級區塊中之位置資訊以及該第二區塊之編號資訊。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,其中當該第一區塊沒有成功寫入一資料、或是該第一區塊沒有成功進行抹除操作時,則判斷該第一區塊為損毀。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,更包括判斷該第一超級區塊中損毀之該第一區塊的數量是否大於該第一超級區塊之全部區塊之一半數量。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,其中當該第一超級區塊中發生損毀之該第一區塊的數量大於該第一超級區塊之全部區塊之一半數量時,使用該壓縮表格來進行紀錄,當該第一超級區塊中發生損毀之區塊的數量並未大於該第一超級區塊之全部區塊之一半數量時,使用一非壓縮表格來進行紀錄。
- 如申請專利範圍第14項所述之用於優化資料儲存裝置之資料儲存方法,其中該非壓縮表格係紀錄該第一超級區塊之每一位置資訊及其對應區塊之編號資訊。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,其中當該等超級區塊中的複數個第一超級區塊具有至少一損毀之該第一區塊時,比較該等第一超級區 塊發生損毀之該第一區塊的數量,並且優先將該第二超級區塊之該第二區塊合併到損毀之該第一區塊數量較少的該第一超級區塊以取代該第一區塊。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,更包括當判斷該第一超級區塊具有複數個損毀的第一區塊,並且該等超級區塊中的複數個第二超級區塊中對應該等第一區塊之位置之複數個第二區塊為正常時,將該等第二超級區塊之該等第二區塊合併到該第一超級區塊以取代該等第一區塊。
- 如申請專利範圍第11項所述之用於優化資料儲存裝置之資料儲存方法,其中當該第一超級區塊中的該第一區塊發生損毀,該第二超級區塊中對應該損毀區塊之位置之該第二區塊為正常,並且該第二超級區塊之正常區塊之數量大於該第一區塊之數量時,將該第二超級區塊分割為第一子超級區塊以及第二子超級區塊,將該第一子超級區塊之該第二區塊合併到該第一超級區塊以取代該等一區塊。
- 如申請專利範圍第18項所述之用於優化資料儲存裝置之資料儲存方法,其中當該等超級區塊中之第三超級區塊之第三區塊發生損毀,並且該第二子超級區塊中對應該損毀區塊之位置之一第四區塊為正常時,將該第二子超級區塊之該第四區塊合併到該第三超級區塊以取代該第三區塊。
- 如申請專利範圍第18項所述之用於優化資料儲存裝置之資料儲存方法,其中當該等超級區塊中之第三超級區塊之第三區塊發生損毀,以及該第二子超級區塊中對應該損毀區 塊之位置之一第四區塊為正常,並且該第二子超級區塊之正常區塊之數量大於該第三區塊之數量時,將該第二子超級區塊分割為第三子超級區塊以及第四子超級區塊,並且當該第四子超級區塊中對應該損毀區塊之位置之一第五區塊為正常時,將該第四子超級區塊之該第五區塊合併到該第三超級區塊以取代該第三區塊。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129148A TWI617917B (zh) | 2017-08-28 | 2017-08-28 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
CN201810431333.8A CN109426447B (zh) | 2017-08-28 | 2018-05-08 | 用以优化数据储存装置的数据储存方法及其数据储存装置 |
US16/016,089 US10776228B2 (en) | 2017-08-28 | 2018-06-22 | Data storage device and data storage method for optimizing the data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129148A TWI617917B (zh) | 2017-08-28 | 2017-08-28 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI617917B true TWI617917B (zh) | 2018-03-11 |
TW201913376A TW201913376A (zh) | 2019-04-01 |
Family
ID=62189070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106129148A TWI617917B (zh) | 2017-08-28 | 2017-08-28 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776228B2 (zh) |
CN (1) | CN109426447B (zh) |
TW (1) | TWI617917B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190073125A (ko) * | 2017-12-18 | 2019-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN111651371B (zh) | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
CN113220508B (zh) * | 2021-05-08 | 2022-09-23 | 联芸科技(杭州)股份有限公司 | 存储器块的管理方法、存储器的写操作方法以及存储器 |
US11966605B2 (en) * | 2022-03-09 | 2024-04-23 | Kioxia Corporation | Superblock-based write management in non-volatile memory devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
TW201626230A (zh) * | 2015-01-06 | 2016-07-16 | 國立臺灣科技大學 | 利用快閃記憶體的壞頁來存取資料的方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US20080052446A1 (en) * | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US8095765B2 (en) * | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
TWI425357B (zh) * | 2010-09-27 | 2014-02-01 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US9239781B2 (en) * | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9811413B2 (en) * | 2014-07-30 | 2017-11-07 | Apple Inc. | Orphan block management in non-volatile memory devices |
CN104142875A (zh) * | 2014-08-12 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种raid6数据坏块处理的方法 |
US10126950B2 (en) * | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
CN105095026A (zh) * | 2015-08-31 | 2015-11-25 | 小米科技有限责任公司 | Ext文件系统的超级块修复方法和装置、智能设备 |
CN105740163A (zh) * | 2016-01-29 | 2016-07-06 | 山东鲁能智能技术有限公司 | 一种Nand Flash坏块管理方法 |
US10073622B2 (en) * | 2016-10-31 | 2018-09-11 | SK Hynix Inc. | Memory system and operation method thereof |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102420025B1 (ko) * | 2017-06-19 | 2022-07-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10824371B2 (en) * | 2017-06-19 | 2020-11-03 | Micron Technology, Inc. | Managed NAND data compression |
US10340016B2 (en) * | 2017-06-26 | 2019-07-02 | Micron Technology, Inc. | Methods of error-based read disturb mitigation and memory devices utilizing the same |
-
2017
- 2017-08-28 TW TW106129148A patent/TWI617917B/zh active
-
2018
- 2018-05-08 CN CN201810431333.8A patent/CN109426447B/zh active Active
- 2018-06-22 US US16/016,089 patent/US10776228B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
TW201626230A (zh) * | 2015-01-06 | 2016-07-16 | 國立臺灣科技大學 | 利用快閃記憶體的壞頁來存取資料的方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201913376A (zh) | 2019-04-01 |
CN109426447A (zh) | 2019-03-05 |
US20190065332A1 (en) | 2019-02-28 |
US10776228B2 (en) | 2020-09-15 |
CN109426447B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US20180260317A1 (en) | Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same | |
US10698809B2 (en) | Method, associated flash controller and electronic device for accessing flash module with data validity verification | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
TWI617917B (zh) | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
US9639475B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10606744B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
US11216381B2 (en) | Data storage devices and data processing methods | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US10248526B2 (en) | Data storage device and data maintenance method thereof | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
TW202044046A (zh) | 資料儲存裝置與資料處理方法 | |
US20220121568A1 (en) | Method and system of manipulation and redundancy removal for flash memories | |
US9830077B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9665480B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US20240256465A1 (en) | Method of handling trim command in flash memory and related memory controller and storage system thereof |