TWI720246B - 資料儲存裝置以及其操作方法 - Google Patents
資料儲存裝置以及其操作方法 Download PDFInfo
- Publication number
- TWI720246B TWI720246B TW106129515A TW106129515A TWI720246B TW I720246 B TWI720246 B TW I720246B TW 106129515 A TW106129515 A TW 106129515A TW 106129515 A TW106129515 A TW 106129515A TW I720246 B TWI720246 B TW I720246B
- Authority
- TW
- Taiwan
- Prior art keywords
- pages
- page data
- super
- data
- super page
- Prior art date
Links
Images
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/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/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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0608—Saving storage space on storage systems
-
- 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料儲存裝置,包括一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個區塊。上述區塊之每一者包括複數個頁面。控制器將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面。控制器將至少一筆超級頁面資料寫入其中之一該等第一頁面,依據至少一筆該超級頁面資料產生一個校驗碼,以及儲存該校驗碼至該隨機存取記憶體。
Description
本發明係有關於資料儲存裝置與資料儲存方法,特別有關於利用校驗碼修復資料,以節省儲存空間之資料儲存裝置與資料儲存方法。
資料儲存裝置所採用的非揮發式記憶體有多種形式一例如,快閃記憶體(flash memory)、磁阻式揮發性記憶體(Magnetoresistive RAM)、鐵電揮發性記憶體(Ferroelectric RAM)、電阻式揮發性記憶體(Resistive RAM)、自旋轉移力矩揮發性記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
資料儲存裝置的效能受限於非揮發式記憶體的操作特性。本領域一項重要議題為提升資料儲存裝置之效能。
本案揭露一種資料儲存裝置,用以儲存修復資料之校驗碼,而不是儲存頁面之資料。由於校驗碼所需之儲存空間較小,因此能夠有效節省資料儲存裝置的儲存空間,並且增進資料存取的效率。再者,因為資料儲存裝置所儲存之校驗碼之數量是固定的,即使寫入資料儲存裝置的資料增加,也不會增加儲存校驗碼所需要之儲存空間。此外,本發明更使用指標 或是計數值對校驗碼進行動態管理,以提升資料處理的效能。
本發明提供一種資料儲存裝置,包括一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個區塊(block)。上述區塊之每一者包括複數個頁面(page)。該控制器將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面。該控制器將至少一筆超級頁面資料寫入其中之一該等第一頁面,依據至少一筆該超級頁面資料產生一個校驗碼,以及儲存該校驗碼至該隨機存取記憶體。
本發明提供一種資料儲存裝置耦接一主機,該資料儲存裝置包括一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個區塊(block)。上述區塊之每一者包括複數個頁面(page)。該主機將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面。該主機輸入至少一筆超級頁面資料至該資料儲存裝置,依據至少一筆該超級頁面資料產生一個校驗碼,以及儲存該校驗碼至該隨機存取記憶體。
本發明提供一種資料儲存方法,應用於一資料儲存裝置,該資料儲存裝置包括一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個區塊,該等區塊之每一者包括複數個頁面。資料儲存方法包括:將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面;將至少一筆超級頁面資料寫入其中之一該等第一頁面;依據至少一筆該超級頁面資料產生一個校 驗碼;以及儲存該校驗碼至該隨機存取記憶體。
本發明提供一種資料儲存方法,應用於一資料儲存裝置以及一主機,該資料儲存裝置包括一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個區塊,該等區塊之每一者包括複數個頁面。資料儲存方法包括:將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面;輸入至少一筆超級頁面資料至該資料儲存裝置;依據至少一筆該超級頁面資料產生一個校驗碼;以及儲存該校驗碼至該隨機存取記憶體。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧快閃記憶體
160-16N‧‧‧儲存單元
160_A、160_Z…16N_A、16N_Z、BLK‧‧‧區塊
160_A_1、160_ZX…16N_A1、16N_ZX、P#0、P#1…P#15‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
PC#0、PC#1…PC#27‧‧‧校驗碼
P#0、P#1…P#767‧‧‧頁面
SP#0、SP#1…SP#767‧‧‧超級頁面
S502...S718‧‧‧步驟
第1圖係根據本案一種實施例所述之資料儲存裝置與主機之示意圖;第2圖係根據本案一種實施例所述之超級頁面之示意圖;第3圖係顯示根據本發明一實施例所述之寫入查找表之示意圖;第4圖係根據本案一種實施例所述之超級頁面與校驗碼之示意圖;第5圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖;第6圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖; 第7圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、非揮發性記憶體以及隨機存取記憶體(RAM)180。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。資料儲存裝置100與主機200之間的通信協定係符合嵌入式快閃記憶體模組(eMMC)規範、通用快閃記憶體(UFS)、NVMe、SD或SATA規範。非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式揮發性記憶體(Magnetoresistive RAM)、鐵電揮發性記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩揮發性記憶體(Spin Transfer Torque-RAM,STT-RAM)…等具有長時間資料保存之記憶體裝置。以下特別以快閃記憶體(Flash Memory)140為例進行討論。
如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。隨機存取記憶體180用以暫存以及預取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體 140之資料,以加快資料儲存裝置100之存取時間。隨機存取記憶體180較佳是SRAM,也可以是DRAM。
控制器120耦接快閃記憶體140以相互傳送資料與指令或接收資料與指令。在一實施例中,控制器120與快閃記憶體140之間具有4個通道(亦即CH0~CH3)以傳輸資料或指令。進一步而言,控制器120可包括具有韌體碼之一微控制器以及唯讀記憶體(ROM),並且微控制器執行韌體碼以操作或是存取快閃記憶體140。
快閃記憶體140包括複數個儲存單元160~16N所形成的儲存矩陣。舉例而言,快閃記憶體140具有4個儲存單元160~163所形成的儲存矩陣。在一實施例中,每個儲存單元包括一個以上的模塊(Die),並且每個模塊包括一個以上的平面(Plane),每個平面包括複數個區塊(Blocks)160_A~16N_Z,每個包括複數個頁面。在一實施例中,將每個平面的一個區塊組合成一超級區塊(Super Block),使得快閃記憶體140包括複數個超級區塊,每一超級區塊包括複數個超級頁面。由於頁面與超級頁面的運作原理類似,在下述的說明中兩者將交替使用以簡化說明,但不以此為限。
如第1圖所示,儲存單元160包括區塊160_A~160_Z;儲存單元16N包括區塊16N_A~16N_Z,Z例如是2048。對於儲存單元160而言,區塊160_A~160_Z中的每一者更包括複數個頁面160_A_1~16N_Z_X,X例如是768,每一頁面160_A_1~16N_Z_X的資料儲存量例如是16KB,一個頁面資料例如是4筆4KB大小的資料。控制器120在對快閃記憶體140 執行寫入動作時,是以頁面為最小資料寫入單位來執行資料寫入的動作,其中,頁面是由字元線所控制。
對於快閃記憶體140而言,每一區塊160_A~16N_Z的每一頁面160_A_1~16N_Z_X皆具有不同的實體位址。當資料儲存裝置100執行一資料寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入資料。此外,控制器120則分別將上述實體位址對應至資料的邏輯位址,並依此建立了對照表H2F。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取資料儲存裝置100的資料,控制器120藉由對照表H2F得知實體位址,並提供實體位址所儲存的資料至主機200。
第2圖係根據本案一種實施例所述之超級頁面之示意圖。如第2圖所示,快閃記憶體140包括4個儲存單元160~163,儲存單元160~163分別包括區塊160_A~163_A,控制器120可將區塊160_A~163_A組成超級區塊。區塊160_A~163_A分別具有768個頁面,即頁面P#0~P#767。控制器120可將區塊160_A~163_A中相同編號的頁面組成超級頁面,分別是超級頁面SP#0~SP#767,可分別儲存大小為64KB的超級頁面資料。其中,儲存單元160~163較佳置於不同的通道上,也可以平均地置於二個通道上。
由於區塊160_A~163_A中有些頁面可能無法正常操作,因此,控制器120亦可將區塊160_A~163_A中不同編號但相同的寫入順序的頁面組成超級頁面,也由於有些頁面可能無法正常操作而予以遮蔽,因此,超級頁面的總數可能小於767。
快閃記憶體140可為三階儲存單元(Triple-Level Cell,TLC)結構,則頁面P#0~P#2可由字元線WL#0所控制,即一條字元線可以控制三個頁面的操作,並以此類推。其中,頁面P#0稱為下頁面(Lower Page),頁面P#1~P#2稱為上頁面(Upper Page)。另外,快閃記憶體140亦可為四階儲存單元(Quadruple-Level Cell,QLC)結構,則頁面P#0~P#3可由相同的字元線所控制,即一條字元線可以控制四個頁面的操作,並以此類推。其中,頁面P#0~1稱為下頁面,頁面P#2~P#3稱為上頁面,也可以是頁面P#0稱為下頁面,頁面P#1~P#3稱為上頁面。在下述說明中,將以TLC為例進行說明,並不以此為限。
針對同一字元線所控制的頁面,控制器120較佳以二階段(Two-Pass)寫入方式將頁面資料寫入至快閃記憶體140中,即第一階段先將頁面資料寫入至下頁面,第二階段再將頁面資料寫入至上頁面。或者,第一階段先將頁面資料寫入至下頁面,第二階段先參考下頁面的頁面資料,再將頁面資料寫入至上頁面。由於下頁面及上頁面所包括的頁面資料數量大於等於一,所以,將頁面資料寫入至下頁面或上頁面表示將大於等於一筆頁面資料寫入至下頁面或上頁面。
依據快閃記憶體140的運作特性,資料寫入的順序較佳與頁面的編號順序無關,乃依據寫入查找表或判斷式進行判斷。以圖3的寫入查找表為例,頁面資料先依序寫入至頁面P#0、P#3、P#6、P#9、P#12、P#15、P#18、P#21、P#24、P#27(下頁面)後,再將二筆頁面資料寫入頁面P#1~P#2(上頁面),然後,再交錯地寫入頁面資料至下頁面及上頁面,依此類推。如果是 超級頁面的話,則超級頁面資料先依序寫入至超級頁面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下頁面)後,再將二筆超級頁面資料寫入超級頁面SP#1~SP#2(上頁面),然後,再交錯地寫入超級頁面資料至下頁面及上頁面,依此類推。
如果超級頁面資料寫入上頁面時發生了寫入失敗,這會造成下頁面所儲存的超級頁面資料遺失或毀損。為了確保資料儲存的正確性與可靠度,控制器120會將每個下頁面所儲存的超級頁面資料備份至隨機存取記憶體180,以作為資料備份或修復之用,直到下頁面與上頁面的寫入操作完成無誤後,再予以刪除。然而,當下頁面與上頁面的寫入差距愈大,即同一字元線所控制的下頁面的寫入操作到上頁面的寫入操作,兩者之間所進行的下頁面的寫入操作的次數愈大,控制器120需儲存愈多超級頁面資料至隨機存取記憶體180。以圖3的寫入查找表為例,寫入差距(最大值)為10,則控制器120需儲存10筆下頁面的超級頁面資料至隨機存取記憶體180。這些超級頁面資料將佔用隨機存取記憶體180許多資料儲存空間。另外,針對目前寫入的一筆或多筆超級頁面,在寫入動作尚未確定成功之前,一律將超級頁面儲存至隨機存取記憶體180。
為了解決上述問題,本發明乃在控制器120內建互斥或閘(Exclusive OR Gate,XOR Gate),並以複數頁面或超級頁面為一個校驗單位,產生此校驗單位所儲存的超級頁面資料的校驗碼(Parity Code,PC),並將校驗碼儲存至隨機存取記憶體180,至於校驗單位的超級頁面資料,則不儲存至隨機存取 記憶體180。控制器120較佳儲存下頁面的超級頁面資料之校驗碼至隨機存取記憶體180,儲存上頁面的超級頁面資料至隨機存取記憶體180。在其他實施例中,由於控制器120並無內建互斥或閘,或不利用控制器120內建互斥或閘,此時,校驗單位的超級頁面資料的校驗碼乃由外部裝置,例如主機200,所提供。
此校驗碼較佳採用容錯式閃存陣列(RAID,Redundant Array Of Independent Disk)之配置,例如:RAID 5之配置,但本發明並不加以限制。如圖3所示,控制器120分別對超級頁面SP#0的超級頁面資料進行運算以得到校驗碼PC#0,並將校驗碼PC#0儲存至隨機存取記憶體180,以此類推。由於隨機存取記憶體180僅儲存超級頁面SP#0中的頁面資料的校驗碼PC#0,而非超級頁面SP#0中的頁面資料,因此,本發明可節省大約四分之三的隨機存取記憶體180的資料儲存空間。在其他實施例中,上述校驗碼PC#0係儲存於快閃記憶體140。
在第4圖之實施例中,假設快閃記憶體140為TLC結構,校驗單位為一個超級頁面,而1個超級頁面包含4個頁面以儲存一筆超級頁面資料,並採用二階段寫入操作以分別寫入超級頁面資料至下頁面及上頁面,寫入差距值為10,依據寫入查找表或判斷式,控制器120分別寫入1筆超級頁面資料至超級頁面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下頁面),並將超級頁面資料的校驗碼PC#0、PC#3、PC#6、PC#9、PC#12、PC#15、PC#18、PC#21、PC#24、 PC#27儲存至隨機存取記憶體180;接著,寫入2筆超級頁面資料至超級頁面SP#1~SP#2(上頁面),依此類推。
由於寫入差距值為10,所以隨機存取記憶體180僅儲存10個校驗碼。控制器120使用一指標指向隨機存取記憶體180的位址,以儲存校驗碼,或是利用指向的校驗碼進行資料修復。例如,當超級頁面資料寫入上頁面時,控制器120也利用指標再度指向其中之一校驗碼的位址,以取得資料修復(Recovery)所需的校驗碼。例如:控制器120寫入1筆超級頁面資料至超級頁面SP#0時,指標指向隨機存取記憶體180的位址#0以儲存校驗碼PC#0。控制器120寫入1筆超級頁面資料至超級頁面SP#3時,指標指向隨機存取記憶體180的位址#1以儲存校驗碼PC#3。當控制器120寫入2筆超級頁面資料至超級頁面SP#1~SP#2時,指標指向隨機存取記憶體180的位址#0,以取得資料修復所需的校驗碼PC#0,以此類推。
如果控制器120寫入2筆超級頁面資料至超級頁面SP#1~SP#2時區塊160_A的頁面P#1~2發生寫入失敗,這將導致超級頁面SP#0中區塊160_A的頁面P#0的頁面資料損毀或遺失。此時,控制器120讀取區塊160_A、161_A、162_A、163_A的頁面P#0的4筆頁面資料,由於指標指向隨機存取記憶體180的位址#0,所以控制器120可以取得儲存於隨機存取記憶體180的校驗碼PC#0。將區塊160_A、161_A、162_A、163_A的頁面P#0的4筆頁面資料以及校驗碼PC#0計算後,控制器120可取得區塊160_A的頁面P#0的頁面資料,即修復後的區塊160_A的頁面P#0的頁面資料。接著,控制器120啟動錯誤管理程序,對區 塊160_A的頁面P#0執行資料再寫入;或者,將超級頁面SP#0的超級頁面資料寫入另一超級頁面,例如,超級頁面SP#30;或者,將此超級區塊關閉,將超級頁面SP#0的超級頁面資料寫入另一超級區塊的超級頁面SP#0中。針對應寫入超級頁面SP#1~SP#2的2筆超級頁面資料,執行資料再寫入;或者,將超級頁面SP#1~SP#2的2筆超級頁面資料寫入其他超級頁面,例如超級頁面SP#30(下頁面)以及超級頁面SP#4(上頁面);或者,將此超級區塊關閉,將超級頁面SP#1~SP#2的2筆超級頁面資料寫入另一超級區塊的超級頁面SP#0及SP#3中。另外,控制器120也可以僅讀取區塊161_A、162_A、163_A的頁面P#0的3筆頁面資料以及的校驗碼PC#0而達到修復區塊160_A的頁面P#0的頁面資料的目的。
由上述中可知,如果超級頁面中發生了一筆頁面資料毀損時,藉由讀取超級頁面的其他筆頁面資料以及指標所指向的校驗碼即可修復毀損的頁面資料,達到資料修復的目的。
另外,上述指標亦可使用一計數值來代表,其中計數值等於寫入差距值。當超級頁面資料(下頁面)完成寫入後,則計數值遞增1。當計數值累積到10之後,則重設為0。控制器120僅需知道校驗碼在隨機存取記憶體180的起始位址、校驗碼的大小以及計數值的值,即可知得所需校驗碼的位址以取得所需校驗碼。目前藉由本發明所提出之指標或計數方法,控制器120能夠清楚得知校驗碼應該儲存的位址,或從哪個位址可以取得所需的校驗碼以便進行資料修復。
第5圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。步驟S502:控制器120將複數超級頁面區分成複數下頁面以及複數上頁面,其中,超級頁面置於超級區塊中;超級頁面是由單一或複數區塊的頁面所組成;下頁面和上頁面由區塊(超級區塊)的同一字元線所控制;下頁面所儲存的頁面資料的數目小於或等於上頁面所儲存的頁面資料的數目。
步驟S504:控制器120寫入超級頁面資料至其中之一下頁面。控制器120依據寫入查找表或判斷式而決定應將超級頁面資料寫入至哪一個超級頁面(下頁面)。例如,寫入順序為超級頁面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下頁面)。
步驟S506:控制器120將超級頁面資料的校驗碼儲存至隨機存取記憶體180。控制器120將超級頁面SP#0的超級頁面資料的校驗碼PC#0儲存至指標所指向的隨機存取記憶體180的位址,例如位址#0。
步驟S508:控制器120判斷是否寫入超級頁面資料至上頁面。控制器120依據寫入查找表或判斷式而決定是否寫入資料上頁面,例如,超級頁面資料寫入至超級頁面SP#27之後,接著應寫入超級頁面資料至超級頁面SP#1-SP#2。
步驟S510:控制器120寫入超級頁面資料至其中之一上頁面。控制器120依據寫入查找表或判斷式而決定應將頁面資料寫入至哪一個上頁面,例如,應將2筆超級頁面資料寫入至超級頁面SP#1~2。
步驟S512:控制器120判斷寫入是否成功,如果成 功則執行步驟S518,不成功則執行步驟S514。
步驟S514:控制器120依據下頁面所儲存的頁面資料以及校驗碼執行資料修復。假設控制器120寫入2筆超級頁面資料至超級頁面SP#1~SP#2時區塊160_A的頁面P#1~P#2發生了寫入失敗,這將導致超級頁面SP#0中區塊160_A的頁面P#0的頁面資料損毀或遺失。此時,控制器120讀取區塊160_A、161_A、162_A、163_A的頁面P#0的4筆頁面資料。由於指標指向隨機存取記憶體180的位址#0,所以控制器120可以取得儲存於隨機存取記憶體180的校驗碼PC#0。將區塊160_A、161_A、162_A、163_A的頁面P#0的4筆頁面資料以及校驗碼PC#0計算後,控制器120可取得區塊160_A的頁面P#0的頁面資料,即修復後的區塊160_A的頁面P#0的頁面資料。
步驟S516:控制器120啟動錯誤管理程序。控制器120對區塊160_A的頁面P#0執行資料再寫入;或者,將超級頁面SP#0的超級頁面資料寫入另一超級頁面;或者,將此超級區塊關閉,將超級頁面SP#0的超級頁面資料寫入另一超級區塊的超級頁面SP#0中。針對超級頁面SP#1~SP#2的2筆超級頁面資料,執行資料再寫入;或者,將超級頁面SP#1~SP#2的2筆超級頁面資料寫入其他超級頁面,例如超級頁面SP#30(下頁面)以及超級頁面SP#4(上頁面);或者,將此超級區塊關閉,將超級頁面SP#1~SP#2的2筆超級頁面資料寫入另一超級區塊的超級頁面SP#0及#SP#3中。
步驟S518:控制器120判斷是否寫入超級頁面資料至下頁面。控制器120依據寫入查找表或判斷式而決定是否寫 入資料下頁面,例如,超級頁面資料寫入至超級頁面SP#1~SP#2之後,接著應寫入超級頁面資料寫入至超級頁面SP#30。
第6圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖。步驟S602:控制器120將複數超級頁面區分成複數下頁面以及複數上頁面。步驟S604:控制器120決定複數超級頁面的寫入順序。步驟S606:控制器120寫入超級頁面資料至超級頁面。步驟S608:控制器120將超級頁面資料的校驗碼儲存至隨機存取記憶體。步驟S610:控制器120判斷寫入是否成功,成功則執行步驟S606,否則執行步驟S612:控制器120判斷超級頁面是否為上頁面,如果是則執行步驟S614:控制器120依據上頁面所對應的下頁面所儲存的超級頁面資料以及校驗碼執行資料修復,再執行步驟S616:控制器120啟動錯誤管理程序;如果不是則直接執行步驟S616。由於步驟S602~S616與步驟S502~S518類似,故不多作說明。
第7圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖,圖7的流程與圖6的流程類似,主要的差別乃在於圖7的流程乃由主機200所執行,對照表H2F、寫入查找表或判斷式也由主機200所維持,而非控制器120。步驟S702:主機200將複數超級頁面區分成複數下頁面以及複數上頁面。步驟S704:主機200決定複數超級頁面的寫入順序。步驟S706:主機200輸出超級頁面資料至資料儲存裝置100。步驟S708:主機200將超級頁面資料的校驗碼儲存至主機200的隨機存取記憶體(未顯示)。步驟S710:主機200依據資料儲存裝置100所回傳的訊息判斷寫入是否成功,成功則執行步驟S706,否則執行 步驟S712:主機200判斷超級頁面是否為上頁面,如果是則執行步驟S714:主機200令資料儲存裝置100輸出上頁面所對應的下頁面所儲存的超級頁面資料。步驟S716:主機200依據上頁面所對應的下頁面所儲存的超級頁面資料以及校驗碼執行資料修復,再執行步驟S718:主機200啟動錯誤管理程序;如果不是則直接執行步驟S718。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S502...S518‧‧‧步驟
Claims (22)
- 一種資料儲存裝置,包括:一隨機存取記憶體;一快閃記憶體,包括複數個區塊(block),其中該等區塊之每一者包括複數個頁面(page);以及一控制器,將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面,並且該控制器將一超級頁面資料寫入其中之一該等第一頁面,依據該超級頁面資料的複數頁面資料產生一校驗碼(parity code),且儲存該校驗碼至該隨機存取記憶體,並使用一指標指向該隨機存取記憶體的一位址,以及該控制器將另一超級頁面資料寫入其中之一該等第二頁面,並且利用該指標在該隨機存取記憶體中所指向的該位址取得另一校驗碼。
- 如申請專利範圍第1項所述之資料儲存裝置,其中,當該超級頁面資料寫入該其中之一該等第一頁面之後,該控制器不儲存該超級頁面資料至該隨機存取記憶體。
- 如申請專利範圍第1項所述之資料儲存裝置,其中,當欲修復儲存於該其中之一該等第一頁面的該超級頁面資料時,該控制器讀取該超級頁面資料之該等頁面資料中的部分以及該校驗碼並利用該校驗碼與該超級頁面資料之該等頁面資料中的該部分對該超級頁面資料進行修復。
- 如申請專利範圍第1項所述之資料儲存裝置,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,該 控制器利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面由一字元線所控制。
- 如申請專利範圍第1項所述之資料儲存裝置,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,該控制器利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面的寫入順序的差值等於一寫入差距值。
- 一種資料儲存裝置,耦接一主機,該資料儲存裝置包括:一隨機存取記憶體;以及一快閃記憶體,包括複數個區塊(block),其中該等區塊之每一者包括複數個頁面(page),該主機將該等區塊的該等頁面配置為複數個超級頁面,該等超級頁面區分成複數第一頁面以及複數第二頁面,並且該主機輸出一超級頁面資料至該資料儲存裝置以寫入該超級頁面資料至其中之一該等第一頁面,該主機依據該超級頁面資料的複數頁面資料產生一校驗碼(parity code),並儲存該校驗碼至該隨機存取記憶體,並使用一指標指向該隨機存取記憶體的一位址,以及該主機輸出另一超級頁面資料至該資料儲存裝置以寫入該另一超級頁面資料至其中之一該等第二頁面,並且利用該指標在該隨機存取記憶體中所指向的該位址取得另一校驗碼。
- 如申請專利範圍第6項所述之資料儲存裝置,其中,當該超 級頁面資料寫入該其中之一該等第一頁面之後,該主機不儲存該超級頁面資料至該隨機存取記憶體。
- 如申請專利範圍第6項所述之資料儲存裝置,其中,當欲修復儲存於該其中之一該等第一頁面的該超級頁面資料時,該主機令該資料儲存裝置輸出該超級頁面資料之該等頁面資料中的部分,並利用該校驗碼與該超級頁面資料之該等頁面資料中的該部分對該超級頁面資料進行修復。
- 如申請專利範圍第6項所述之資料儲存裝置,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,該主機利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面由一字元線所控制。
- 如申請專利範圍第6項所述之資料儲存裝置,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,該主機利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面的寫入順序的差值等於一寫入差距值。
- 一種資料儲存方法,應用於一資料儲存裝置,該資料儲存裝置包括一快閃記憶體以及一隨機存取記憶體,其中該快閃記憶體包括複數個區塊(block),該等區塊之每一者包括複數個頁面(page),該資料儲存方法包括:將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面; 將一超級頁面資料寫入其中之一該等第一頁面;依據該超級頁面資料的複數頁面資料產生一校驗碼(parity code);儲存該校驗碼至該隨機存取記憶體,並使用一指標指向該隨機存取記憶體的一位址;及將另一超級頁面資料寫入其中之一該等第二頁面,並且利用該指標在該隨機存取記憶體中所指向的該位址取得另一校驗碼。
- 如申請專利範圍第11項所述之資料儲存方法,其中,當該超級頁面資料寫入該其中之一該等第一頁面之後,不儲存該超級頁面資料至該隨機存取記憶體。
- 如申請專利範圍第11項所述之資料儲存方法,其中,當欲修復儲存於該其中之一該等第一頁面的該超級頁面資料時,讀取該超級頁面資料之該等頁面資料中的部分以及該校驗碼,並利用該校驗碼與該超級頁面資料之該等頁面資料中的該部分對該超級頁面資料進行修復。
- 如申請專利範圍第11項所述之資料儲存方法,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面由一字元線所控制。
- 如申請專利範圍第11項所述之資料儲存方法,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,利用該校驗碼修復該超級頁面資料,而該其中之一該等第 二頁面與該其中之一該等第一頁面的寫入順序的差值等於一寫入差距值。
- 如申請專利範圍第11項所述之資料儲存方法,更包括:使用一指標以指向該校驗碼。
- 一種資料儲存方法,用以控制一資料儲存裝置的資料儲存,該資料儲存裝置包括一快閃記憶體,其中該快閃記憶體包括複數個區塊(block),該等區塊之每一者包括複數個頁面(page),該資料儲存方法包括:將該等區塊的該等頁面配置為複數個超級頁面,其中該等超級頁面區分成複數第一頁面以及複數第二頁面;輸出一超級頁面資料至該資料儲存裝置,以寫入該超級頁面資料至其中之一該等第一頁面;依據該超級頁面資料的複數頁面資料產生一校驗碼(parity code);儲存該校驗碼至一隨機存取記憶體,並使用一指標指向該隨機存取記憶體的一位址;及輸出另一超級頁面資料至該資料儲存裝置以寫入該另一超級頁面資料至其中之一該等第二頁面,並且利用該指標在該隨機存取記憶體中所指向的該位址取得另一校驗碼。
- 如申請專利範圍第17項所述之資料儲存方法,其中,當該超級頁面資料寫入該其中之一該等第一頁面之後,不儲存該超級頁面資料至該隨機存取記憶體。
- 如申請專利範圍第17項所述之資料儲存方法,其中,當欲 修復儲存於該其中之一該等第一頁面的該超級頁面資料時,令該資料儲存裝置輸出該超級頁面資料之該等頁面資料中的部分,並利用該校驗碼與該超級頁面資料之該等頁面資料中的該部分對該超級頁面資料進行修復。
- 如申請專利範圍第17項所述之資料儲存方法,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面由一字元線所控制。
- 如申請專利範圍第17項所述之資料儲存方法,其中,當該另一超級頁面資料寫入該其中之一該等第二頁面失敗時,利用該校驗碼修復該超級頁面資料,而該其中之一該等第二頁面與該其中之一該等第一頁面的寫入順序的差值等於一寫入差距值。
- 如申請專利範圍第17項所述之資料儲存方法,更包括:使用一指標以指向該校驗碼。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129515A TWI720246B (zh) | 2017-08-30 | 2017-08-30 | 資料儲存裝置以及其操作方法 |
CN201810007193.1A CN109426441B (zh) | 2017-08-30 | 2018-01-04 | 数据储存装置以及其操作方法 |
US15/968,305 US10509697B2 (en) | 2017-08-30 | 2018-05-01 | Data storage device and operating method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129515A TWI720246B (zh) | 2017-08-30 | 2017-08-30 | 資料儲存裝置以及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201913380A TW201913380A (zh) | 2019-04-01 |
TWI720246B true TWI720246B (zh) | 2021-03-01 |
Family
ID=65435138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106129515A TWI720246B (zh) | 2017-08-30 | 2017-08-30 | 資料儲存裝置以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10509697B2 (zh) |
CN (1) | CN109426441B (zh) |
TW (1) | TWI720246B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190034306A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs |
US10872012B2 (en) * | 2019-01-08 | 2020-12-22 | Western Digital Technologies, Inc. | XOR recovery schemes utilizing external memory |
CN110471798A (zh) * | 2019-08-21 | 2019-11-19 | 深圳市时创意电子有限公司 | 一种有效改善Pair-Page掉失数据的方法 |
US11966607B2 (en) * | 2021-09-29 | 2024-04-23 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information |
CN114579057B (zh) * | 2022-03-11 | 2024-05-14 | 长江存储科技有限责任公司 | 缓存设备的校验数据的存储方法、存储装置及存储系统 |
CN115329399B (zh) * | 2022-10-13 | 2023-01-31 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047409A1 (en) * | 2010-08-23 | 2012-02-23 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US20140310574A1 (en) * | 2012-12-28 | 2014-10-16 | Super Talent Technology, Corp. | Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9389952B2 (en) | 2008-06-18 | 2016-07-12 | Super Talent Technology, Corp. | Green NAND SSD application and driver |
US8555143B2 (en) * | 2008-12-22 | 2013-10-08 | Industrial Technology Research Institute | Flash memory controller and the method thereof |
US9058288B2 (en) * | 2011-04-03 | 2015-06-16 | Apple Inc. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
KR101888074B1 (ko) * | 2012-01-09 | 2018-08-13 | 삼성전자주식회사 | 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 |
US9262268B2 (en) * | 2013-12-20 | 2016-02-16 | Seagate Technology Llc | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
TWI556254B (zh) * | 2014-10-14 | 2016-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料存取方法 |
CN105573681B (zh) | 2015-12-31 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种ssd盘片内部raid组建方法及系统 |
-
2017
- 2017-08-30 TW TW106129515A patent/TWI720246B/zh active
-
2018
- 2018-01-04 CN CN201810007193.1A patent/CN109426441B/zh active Active
- 2018-05-01 US US15/968,305 patent/US10509697B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047409A1 (en) * | 2010-08-23 | 2012-02-23 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US20140310574A1 (en) * | 2012-12-28 | 2014-10-16 | Super Talent Technology, Corp. | Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance |
Also Published As
Publication number | Publication date |
---|---|
US20190065309A1 (en) | 2019-02-28 |
CN109426441B (zh) | 2022-07-26 |
TW201913380A (zh) | 2019-04-01 |
US10509697B2 (en) | 2019-12-17 |
CN109426441A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI720246B (zh) | 資料儲存裝置以及其操作方法 | |
TWI639917B (zh) | 資料儲存裝置及映射表重建方法 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9817749B2 (en) | Apparatus and method of offloading processing from a data storage device to a host device | |
US9552290B2 (en) | Partial R-block recycling | |
TWI661307B (zh) | 資料儲存裝置、主機裝置、以及資料寫入方法 | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
US8612836B2 (en) | Non-volatile memory device with uncorrectable information region and operation method using the same | |
TW201545161A (zh) | 非揮發性記憶體裝置讀取干擾管理方法 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
US20160098201A1 (en) | Data storage device and operating method thereof | |
TW201944738A (zh) | 解碼方法及儲存控制器 | |
CN101427323A (zh) | 读取非易失性计算机存储器的系统和方法 | |
TWI498902B (zh) | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
TWI554886B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI651726B (zh) | 解碼方法以及儲存控制器 | |
CN104794063A (zh) | 一种具备电阻式存储器的固态储存装置的控制方法 | |
TW201603030A (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
CN112673356B (zh) | 快速非易失性存储装置恢复技术 | |
US10509583B1 (en) | Memory management method and storage controller | |
US11561713B2 (en) | Simplified high capacity die and block management | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device |