TWI649755B - 資料儲存裝置與記憶體裝置之資料處理方法 - Google Patents
資料儲存裝置與記憶體裝置之資料處理方法 Download PDFInfo
- Publication number
- TWI649755B TWI649755B TW106145271A TW106145271A TWI649755B TW I649755 B TWI649755 B TW I649755B TW 106145271 A TW106145271 A TW 106145271A TW 106145271 A TW106145271 A TW 106145271A TW I649755 B TWI649755 B TW I649755B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- pages
- predetermined
- controller
- data
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料儲存裝置,包括記憶體裝置以及控制器。記憶體裝置包括至少一多層單元區塊,多層單元區塊包括複數物理分頁。控制器耦接記憶體裝置,當控制器判斷於執行將資料寫入多層單元區塊之一寫入操作之過程中發生過突然斷電(SPO)時,控制器找出被斷電攻擊的一既定分頁,重新編程既定分頁及與既定分頁直接相關之一第一分頁,並且虛擬編程與既定分頁間接相關之複數第二分頁。
Description
本發明係關於一種適用於快閃記憶體裝置之資料處理方法,可有效提升記憶體區塊的使用率及運作效能。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效的存取控制也變成一個重要的議題。
為了改良資料儲存裝置的存取效能,本發明提出一種新的資料處理方法,於記憶體裝置遭受突然斷電攻擊後,可有效提升記憶體區塊的使用率及運作效能。
本發明揭露一種資料儲存裝置,包括記憶體裝置以及控制器。記憶體裝置包括至少一多層單元區塊,多層單元區塊包括複數物理分頁。控制器耦接記憶體裝置,當控制器判斷於執行將資料寫入多層單元區塊之一寫入操作之過程中發生過突然斷電(SPO)時,控制器找出被斷電攻擊的一既定分頁,
重新編程既定分頁及與既定分頁直接相關之一第一分頁,並且虛擬編程與既定分頁間接相關之複數第二分頁。
本發明揭露一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一控制器,記憶體裝置包括至少一多層單元區塊,多層單元區塊包括複數物理分頁,其中當控制器判斷於執行將資料寫入多層單元區塊之一寫入操作之過程中發生過突然斷電(SPO)時,資料處理方法方法包括:由控制器找出多層單元區塊中被斷電攻擊的一既定分頁;重新編程既定分頁及與既定分頁直接相關之一第一分頁;以及虛擬編程與既定分頁間接相關之複數第二分頁。
100‧‧‧資料儲存裝置
110A、110B‧‧‧控制器
111‧‧‧微處理器
112、SRAM‧‧‧靜態隨機存取記憶體
113、ROM‧‧‧唯讀記憶體
114‧‧‧編碼器
115‧‧‧擾亂器
120‧‧‧記憶體裝置
200‧‧‧主機裝置
117、118‧‧‧介面
300A、300B‧‧‧電子裝置
400‧‧‧記憶體區塊
WL(m)、WL(n-1)、WL(n)、WL(k)‧‧‧字元線
第1A圖係顯示根據本發明之一實施例所述之電子裝置範例方塊圖。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置範例方塊圖。
第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。
第3圖係顯示根據本發明之一實施例所述之一記憶體區塊所包含之複數物理分頁示意圖。
第4圖係顯示根據本發明之一實施例所述之一記憶體區塊的多個平面的示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1A圖係顯示根據本發明之一實施例所述之電子裝置方塊圖。電子裝置300A可包括主機裝置200與資料儲存裝置100。電子裝置300A可為行動裝置,例如智慧型手機、智慧型手錶或平板電腦,但不以此為限。
根據本發明之一實施例,資料儲存裝置100可包括控制器110A與記憶體裝置120。控制器110A可至少包括一微處理器111、靜態隨機存取記憶體(Static Random Access Memory,縮寫為SRAM)112、唯讀記憶體(ROM)113、一編碼器114與一擾亂器115。記憶體裝置120可包括一或多個非揮發性記憶體,例如,快閃記憶體。
主機裝置200與資料儲存裝置100可透過一既定介面117相互連接。例如,當資料儲存裝置100符合通用快閃記憶體(Universal Flash Storage,縮寫為UFS)之規範時,主機裝置200與資料儲存裝置100可透過UFS介面相互連接,且資料儲存裝置100可透過介面117與主機裝置200連接。又例如,當資料儲存裝置100符合內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)之規範時,主機裝置200與資料儲存裝置100可透過MMC介面相互連接,且資料儲存裝置100可透過介面117與主機裝置200連接。此外,控制器110A與記憶體裝置120可透過另
一記憶體介面118相互連接。
唯讀記憶體113可儲存程式碼,微處理器111可執行該程式碼,以控制記憶體裝置120之存取運作,並利用靜態隨機存取記憶體112進行所需的緩衝處理,以及透過介面117與主機裝置200溝通。編碼器114可對資料進行編碼、解碼,並且可根據欲寫入記憶體裝置120之資料內容產生同位檢查(parity check)位元,用以檢查及更正錯誤。擾亂器115可根據隨機種子對欲寫入記憶體裝置120之資料進行資料擾亂,以及根據對應之隨機種子對自記憶體裝置120讀出之資料進行解擾亂。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置300B範例方塊圖。於此實施例中,SRAM 112被配置於控制器110B外部,並且耦接至控制器110B。
值得注意的是,為簡化說明,第1A圖與第1B圖僅顯示與本發明相關之元件,並且第1A圖與第1B圖僅顯示多種可應用本發明之架構的其中兩種。然而,本發明之實施並不僅限於第1A圖與第1B圖所示之元件與架構。
根據本發明之一實施例,記憶體裝置120包括複數記憶體區塊。記憶體區塊可進一步被區分為複數單層單元(Single Level Cell,縮寫為SLC)區塊與複數多層單元區塊(Multiple Level Cell,縮寫為MLC)區塊。SLC區塊的每個記憶體單元中儲存一個位元資料,MLC區塊的每個記憶體單元中儲存多個位元資料。例如,根據本發明之一實施例,MLC區塊的每一個記憶體單元(亦即每一個浮動閘極電晶體)可以儲存二個位元,包含最低有效位元(LSB)與最高有效位元(MSB)。假設記
憶體區塊具有N條字元線,其中N為正整數,每一條字元線可構成兩個資料頁,故記憶體區塊共包含有2*N個資料頁。每一條字元線上的多個記憶體單元所儲存的最低有效位元構成了該字元線對應的第一個物理分頁(最低有效位元資料頁(LSB page))以及所儲存的最高有效位元構成了該字元線對應的第二個物理分頁(最高有效位元資料頁(MSB page))。換言之,MLC區塊的各個物理分頁係分別對應到特定之字元線。在此實施例中,同一條字元線上的二個資料頁具有連續的分頁編號,舉例而言,字元線WL(0)上的多個記憶體單元所儲存的最低有效位元構成了資料頁P(0),字元線WL(0)上的多個記憶體單元所儲存的最高有效位元構成了資料頁P(1),但本發明不以此為限。於其他實施例中,同一條字元線上的多個資料頁可具有不連續的分頁編號。
如上述,各記憶體區塊可包括複數分頁,通常在快閃記憶體中,一個分頁為一個寫入作業的最小資料塊單位。一個物理分頁的大小為固定的,而一個邏輯分頁的大小則可根據韌體編程需求彈性地被設計。
一般而言,記憶體裝置的一些特定程序中需要執行資料搬移。例如,多層單元區塊的垃圾回收(garbage collection)程序便會需要執行資料搬移。當執行資料搬移時,資料會自來源記憶體區塊搬移(被寫入)至目的記憶體區塊。於資料搬移的過程中,最不樂見的就是發生不預期的斷電或者突然斷電(Sudden Power Off,縮寫為SPO)。
當記憶體裝置120於資料搬移的過程中發生突然
斷電,傳統的處理方法為放棄已完成的資料搬移,即放棄已被搬移至目的記憶體區塊之資料,並且由控制器尋找其他空的記憶體區塊,再重新開始資料搬移。舉例而言,當資料儲存裝置100上電時,微處理器111可自記憶體裝置120讀取一些變數值(例如,不預期斷電旗標或SPO計數值)判斷是否發生過突然斷電。其中,SPO計數值係用於累計發生不預期斷電的次數,當SPO計數值增加則代表記憶體裝置120的上次關機是不預期斷電造成的。此外,不預期斷電旗標係用於指出資料儲存裝置100上一次的關機是否是不預期斷電造成的,例如:當不預期斷電旗標的值為1時,代表發生不預期斷電,當不預期斷電旗標的值為0時,代表正常關機,於每次資料儲存裝置100上電時,微處理器111可將不預期斷電旗標設定為1並儲存於記憶體裝置120,而當記憶體裝置120正常關機時,微處理器111可將不預期斷電旗標設定為0並儲存於記憶體裝置120,因此若發生不預期斷電後時再次上電時,不預期斷電旗標仍會保持在數值1。若控制器發現先前發生突然斷電時,有尚未完成的資料搬移,則控制器直接放棄該未完成的資料搬移,選取其他的空的記憶體區塊作為目的記憶體區塊,並且再從頭開始進行資料搬移。
然而,這樣的作法,會導致記憶體區塊被抹除的次數增加,因而降低記憶體區塊的壽命。此外,放棄已經完成搬移的資料,選取其他的記憶體區塊從頭開始進行資料搬移也會降低記憶體裝置120的運作效能。
為了避免上述的缺陷,本發明提出一種新穎的資料處理方法,不僅無須放棄已經完成搬移的部分資料,也能有
效提升記憶體區塊的使用率及運作效能。
根據本發明之一實施例,當控制器110A/110B判斷先前於執行將資料寫入一多層單元(MLC)區塊之一寫入操作之過程中發生過突然斷電(SPO)時,控制器110A/110B不會捨棄此MLC區塊,而是會先找出被斷電攻擊的物理分頁(以下稱之為既定分頁),並且執行對應之突然斷電回復(Sudden Power Off Recovery,SPOR)程序,包含找到適當的物理分頁並繼續SPO發生之前未完成的寫入操作。
第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。於此實施例中,假設當控制器110A/110B執行將資料寫入一MLC區塊之一寫入操作之過程中發生過突然斷電。當資料儲存裝置100上電時,控制器110A/110B可先藉由一些變數值(例如,不預期斷電旗標或SPO計數值)判斷是否發生過突然斷電。若控制器發現先前發生突然斷電時,此MLC區塊有尚未完成的資料搬移,則控制器110A/110B可先找出MLC區塊中被斷電攻擊的既定分頁(步驟S202)。接著,控制器110A/110B可重新編程(double programming)此既定分頁及與此既定分頁直接相關之一第一分頁(步驟S204)。接著,控制器110A/110B可虛擬編程(dummy programming)與此既定分頁間接相關之複數第二分頁(步驟S206)。接著,控制器110A/110B可決定捨棄與此既定分頁間接相關之複數第三分頁(步驟S208),即,捨棄第三分頁被寫入的資料。
值得注意的是,於本發明之實施例中,第二分頁與第三分頁均為與此既定分頁間接相關之物理分頁,所謂之間
接相關係指第二分頁、第三分頁與此既定分頁所分別對應的字元線於物理空間的配置上是鄰近的(以下將有更詳細的說明)。第二分頁與第三分頁之差異在於,第二分頁為尚未被編程過(尚未寫入資料)的分頁,而第三分頁為於記憶體裝置120被斷電攻擊前已被編程過(已被寫入資料)的分頁。此外,值得注意的是,步驟S206與步驟S208的執行順序可交換。
於本發明之實施例中,所述之第二分頁可包括複數分頁編號連續的物理分頁,且所述之第三分頁可包括複數分頁編號連續的物理分頁。
接著,控制器110A/110B可將MLC區塊中該等第三分頁的起始物理分頁的前一物理分頁標註為存有最新(latest)且有效資料的物理分頁(步驟S210)。例如,控制器110A/110B可將此物理分頁的分頁編號紀錄於一變數中,用以指出存有最新(latest)且有效資料的物理分頁為哪個分頁。值得注意的是,步驟S206、步驟S208與步驟S210的執行順序也是可交換。例如,控制器110A/110B可先執行步驟S208,再執行步驟S210,再執行步驟S206。
最後,控制器110A/110B可將MLC區塊中該等第二分頁的結束物理分頁的次一物理分頁標註為第一個空白的物理分頁(步驟S212)。
第3圖係顯示根據本發明之一實施例所述之一記憶體區塊所包含之複數物理分頁示意圖。假設記憶體區塊400為一MLC區塊,並包含256個物理分頁,圖中的數字為各物理分頁所給予的分頁編號。分頁編號為一邏輯性的編號。亦即,
分頁編號連續之複數分頁並不絕對表示這些分頁於物理空間的配置上是連續、相鄰或相近的。
假設控制器110A/110B於將資料寫入第48頁時,發生突然斷電(SPO),則此實施例中的第48頁為上述的既定分頁。當記憶體裝置120重新上電時,控制器110A/110B可先藉由一些變數值(例如,不預期斷電旗標或SPO計數值)判斷是否發生過突然斷電。若控制器發現先前發生突然斷電時,此MLC區塊有尚未完成的資料搬移,則控制器110A/110B可先找出此MLC區塊中被斷電攻擊的既定分頁。
根據本發明之一實施例,控制器110A/110B可對記憶體區塊400所包含的所有物理分頁執行二元搜索(binary search),以找出目前第一個空白的分頁。於本發明之一實施例,控制器110A/110B可讀取被搜索的各分頁所存之資料,依資料內容判斷是否為空白頁。舉例而言,若讀出的資料圖樣均為1,或者一預設圖樣,則代表為空白頁。於此實施例中,目前第一個空白的分頁為第49頁。
待找出目前第一個空白的分頁後,便可定位出此MLC區塊中被斷電攻擊的既定分頁。於此實施例中,被斷電攻擊的既定分頁為第一個空白的分頁的前一頁,即,第48頁。
接著,控制器110A/110B可重新編程(double programming)此既定分頁及與此既定分頁直接相關之一第一分頁。根據本發明之一實施例,所述之第一分頁為此既定分頁之一配對頁(pair page),其中此既定分頁與其配對頁對應於同一字元線。第一分頁可僅包含一個分頁,或者可包含複數分頁。
例如,所述之第一分頁與此既定分頁對應於同一個寫入指令(例如一次性寫入指令/One-shot programing command)時,其中第一分頁可僅包含一個分頁。又例如,於具有兩儲存矩陣(plane)之記憶體裝置120的實施例中,不同儲存矩陣的相對應記憶體區塊可構成一超級區塊,則一次性寫入指令可一次寫入四個分頁的資料,因此第一分頁可包含複數分頁,例如第3圖所示,第一分頁可包含分頁45-47。
一般而言,多層單元快閃記憶體的一個記憶單元儲存兩個資料位元,而此兩個資料位元分別屬於一組相對應的強分頁(strong page)與弱分頁(weak page),並且這組強分頁與弱分頁互為彼此之配對頁。所謂強分頁,係指該分頁被寫入資料時的編程忙碌時間(program busy time)較短。反之,所謂弱分頁,係指該分頁被寫入資料時所需的編程忙碌時間較長。一般而言,控制器在將資料寫入快閃記憶體時,是逐次寫入快閃記憶體的各頁。因此,當多層單元快閃記憶體的一組相對應的強分頁與弱分頁先後被寫入資料時,後續被寫入資料的弱分頁可能會影響先前被寫入資料的強分頁的資料儲存。
此外,一般而言,記憶體區塊的強分頁與弱分頁的配對關係可以是製造記憶體裝置時就可得知的,或者可以是經由特定的計算而得知的。於此實施例中,既定分頁第48頁的配對頁為第47頁。值得注意的是,於記憶體設計中,強分頁與弱分頁可以是連續(分頁編號連續)的分頁,也可是不連續的分頁,因此,本發明並不限定於任一種可能的配對關係。
根據本發明之一實施例,控制器110A/110B藉由寫
入一預定圖樣覆蓋既定分頁及第一分頁原先已被寫入之原始資料,用以重新編程既定分頁及第一分頁,使其穩定。
值得注意的是,於一實施例中,控制器110A/110B於一次寫入操作中可僅編程一個儲存矩陣,因此,因遭受斷電攻擊而直接受影響的分頁為既定分頁及第一分頁(例如既定分頁的配對頁)。然而,本發明並不限於此。於第3圖之實施例中,控制器110A/110B於一次寫入操作中可同時編程兩個儲存矩陣,例如,將兩個記憶體矩陣串聯耦接至相同的字元線組,因此,控制器110A/110B對於活化一既定字元線的一次寫入操作中,可同時編程這兩個儲存矩陣中對應至此既定字元線的分頁,則被斷電攻擊而直接受影響的分頁可包含既定分頁及多個第一分頁,如第3圖所示。因此,於此實施例中,因斷電攻擊而直接影響的分頁亦可為,例如,四個分頁,控制器110A/110B藉由寫入一預定圖樣覆蓋這四個分頁原先已被寫入之原始資料,用以重新編程這四個分頁,使其穩定。
接著,控制器110A/110B可找出與既定分頁間接相關之複數第三分頁,並且決定捨棄第三分頁。根據本發明之一實施例,與既定分頁間接相關的分頁係指會因突然斷電的發生而導致記憶體狀態不穩定或儲存資料失真的分頁。根據本發明之一實施例,假設既定分頁係對應至一既定字元線,則第三分頁可包括對應至鄰近此既定字元線之一或多條(或,一既定數量)字元線之複數物理分頁。根據本發明之一實施例,所述之鄰近字元線可以字元線編號相近的字元線,亦可以是物理空間中配置於鄰近的位置的字元線(即便字元線編號不相近)。於此
實施例中,第三分頁為第37分頁至第44分頁。
值得注意的是,於本發明之實施例中,第三分頁除了包括因突然斷電的發生而間接受影響導致記憶體狀態不穩定或儲存資料失真的分頁(例如,對應至鄰近此既定字元線之一或多條字元線之複數物理分頁),亦可包括未間接受影響的分頁(例如,並非對應至鄰近此既定字元線之一或多條字元線之複數物理分頁)。
第4圖係顯示根據本發明之一實施例所述之一記憶體區塊的示意圖。如圖所示,3D MLC記憶體區塊可包含立體堆疊之多個平面(即,多層),各層可包含多個物理分頁。假設被斷電攻擊的既定分頁(第48頁)對應至字元線WL(n),則因斷電攻擊而間接受影響的分頁可包括物理空間的配置上是對應鄰近字元線的分頁。例如,對應至字元線WL(n)上方之字元線WL(m)之分頁,諸如第37、38分頁,以及對應至前一條字元線WL(n-1)之分頁,諸如第46分頁等,其中n與m為正整數。此外,由於記憶體之各分頁的編程必須是連續的(即,各分頁會依分頁編號連續被編程),因此,於本發明之實施例中,控制器110A/110B可決定捨棄自第37分頁至第44分頁之間的物理分頁(即使其中包含了其他未間接受影響的分頁,例如對應至字元線WL(n-2)之分頁)。
根據本發明之一實施例,第三分頁的涵蓋範圍可以是製造記憶體裝置時就可得知的,或者可以是經由特定的計算或多次實驗而得知的。
根據本發明之一實施例,記憶體裝置120可儲存多
個映射表格,例如,記憶體裝置120可至少包含一邏輯實體映射表格(第一映射表格),用以紀錄各邏輯分頁係分別指向記憶體裝置120中之哪個MLC區塊的哪個物理分頁。於本發明之實施例中,控制器110A/110B藉由清除第三分頁於邏輯實體映射表格中所記錄的物理區塊及物理分頁連結來捨棄第三分頁。例如,控制器110A/110B可將第三分頁於邏輯實體映射表格中所記錄的物理區塊及物理分頁連結(例如,物理區塊編號與物理分頁編號)改寫為0xFF,或其他預設值、無效值。換言之,當邏輯實體映射表格的連結被清除,對應之物理分頁所儲存之資料即為無效資料。
接著,控制器110A/110B可將MLC區塊中這些第三分頁的起始物理分頁的前一個物理分頁標註為存有最新(latest)且有效資料的物理分頁。例如,於此實施例中,存有最新資料的物理分頁為第36分頁。控制器110A/110B可將此物理分頁的分頁編號紀錄於一變數中,用以指出存有最新(latest)且有效資料的物理分頁為哪個分頁。若之後又遇到不預期斷電時,控制器110A/110B可以此存有最新(latest)且有效資料的物理分頁開始相關的處理。
接著,控制器110A/110B可找出其他與既定分頁間接相關之複數第二分頁,並且虛擬編程第二分頁。根據本發明之一實施例,與既定分頁間接相關的分頁係指會因突然斷電的發生而導致記憶體狀態不穩定的分頁。根據本發明之一實施例,假設既定分頁係對應至一既定字元線,則第二分頁可包括對應至鄰近此既定字元線之一或多條(或,一既定數量)字元線之複
數物理分頁。根據本發明之一實施例,所述之鄰近字元線可以字元線編號相近的字元線,亦可以是物理空間中配置於鄰近的位置的字元線(即便字元線編號不相近)。於此實施例中,第二分頁為第49分頁至第56分頁。
如上述,於本發明之實施例中,第二分頁與第三分頁均為與此既定分頁間接相關之物理分頁,第二分頁與第三分頁之差異在於,第二分頁為尚未被編程過(尚未寫入資料)的分頁,而第三分頁為於記憶體裝置120被斷電攻擊前已被編程過(已被寫入資料)的分頁。
此外,值得注意的是,於本發明之實施例中,第二分頁除了包括因突然斷電的發生而間接受影響導致記憶體狀態不穩定的分頁(例如,對應至字元線WL(n)下方之字元線WL(k)之第55、56分頁、對應至後一條字元線WL(n+1)之第49、50分頁等,其中k為正整數),亦可包括未間接受影響的分頁(例如,並非對應至鄰近此既定字元線之一或多條字元線之複數物理分頁)。由於記憶體之各分頁的編程必須是連續的(即,各分頁會依分頁編號連續被編程),因此,於本發明之實施例中,控制器110A/110B可決定虛擬編程自第49分頁至第56分頁之間的物理分頁(即使其中包含了其他未間接受影響的分頁)。
根據本發明之一實施例,第二分頁的涵蓋範圍可以是製造記憶體裝置時就可得知的,或者可以是經由特定的計算或多次實驗而得知的。此外,根據本發明之一實施例,既定分頁與第一分頁通常位於同一平面,而第二分頁與第三分頁可與既定分頁位於同一平面或不同平面。然而,必須注意的是,
本發明並不僅限於此實施方式。
根據本發明之一實施例,控制器110A/110B可藉由寫入一虛擬資料、無效資料或一預定圖樣以虛擬編程第二分頁。當第二分頁被虛擬編程後,控制器110A/110B可將MLC區塊中第二分頁的結束物理分頁的次一物理分頁標註為第一個空白的物理分頁。例如,於此實施例中,第一個空白的物理分頁改為第57分頁。控制器110A/110B可將此物理分頁的分頁編號紀錄於一變數中,用以指出第一個空白的物理分頁為哪個分頁。待確定第一個空白的物理分頁後,控制器110A/110B可繼續SPO發生之前未完成的寫入操作,即,自第57分頁開始,將其他尚未完成寫入的資料自來源記憶體區塊搬移(寫入)至目的記憶體區塊。
根據本發明之一實施例,控制器110A/110B可自來源記憶體區塊中尚未完成搬移的第一個物理頁面開始,繼續斷電攻擊前未完成的資料搬移,或者可自目前MLC區塊中存有最新資料的物理分頁(即,於本實施例中為第36分頁)所對應之來源記憶體區塊之物理頁面的次一頁面開始搬移,使得此目前MLC區塊(目的記憶體區塊)的第36分頁接續到第57分頁的資料為來源記憶體區塊中連續的資料。
藉由上述資料處理方法,控制器110A/110B可快速找出被斷電攻擊的物理分頁,並且執行對應之資料處理,包含重新編程因斷電攻擊而直接受影響的N個分頁、虛擬編程因斷電攻擊而間接受影響的M個分頁,以及捨棄因斷電攻擊而間接受影響的R個分頁,其中N、M、R均為正整數,並且N、M、R
可隨著記憶體裝置120的規格不同而對應被調整。此外,控制器110A/110B可進一步找到適當的物理分頁並繼續SPO發生之前未完成的寫入操作。不同於傳統設計,本發明所提出之資料處理方法不會放棄被斷電攻擊的MLC區塊。因此,本發明所提出之資料處理方法可有效避免傳統設計中記憶體區塊被抹除的次數增加、記憶體區塊的壽命被縮短,更可提高記憶體裝置120的運作效能。
申請專利範圍中用以修飾元件之“第一”、“第二”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (6)
- 一種資料儲存裝置,包括:一記憶體裝置,包括至少一多層單元區塊,該多層單元區塊包括複數物理分頁;以及一控制器,耦接該記憶體裝置,當該控制器判斷於執行將資料寫入該多層單元區塊之一寫入操作之過程中發生過突然斷電(SPO)時,該控制器找出被斷電攻擊的一既定分頁,重新編程該既定分頁及與該既定分頁直接相關之一第一分頁,並且虛擬編程與該既定分頁間接相關之複數第二分頁,其中該第一分頁為該既定分頁之一配對頁,該既定分頁對應至一既定字元線,該等第二分頁為對應至鄰近該既定字元線之一或多條字元線之複數物理分頁,其中該控制器更捨棄與該既定分頁間接相關之複數第三分頁,該等第三分頁為對應至鄰近該既定字元線之一或多條字元線之複數物理分頁,其中該等第三分頁於該記憶體裝置被斷電攻擊前已完成資料寫入,並且其中該記憶體裝置更儲存一第一映射表格,用以紀錄各邏輯分頁係指向哪個物理分頁,並且其中該控制器藉由清除該等第三分頁於該第一映射表格中所記錄的物理區塊及物理分頁連結捨棄該等第三分頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器藉由寫入一預定圖樣覆蓋原始資料以重新編程該既定分頁及該第一分頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器藉由寫入一虛擬資料以虛擬編程該等第二分頁。
- 一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一控制器,該記憶體裝置包括至少一多層單元區塊,該多層單元區塊包括複數物理分頁,其中當該控制器判斷於執行將資料寫入該多層單元區塊之一寫入操作之過程中發生過突然斷電(SPO)時,該方法包括:由該控制器找出該多層單元區塊中被斷電攻擊的一既定分頁;重新編程該既定分頁及與該既定分頁直接相關之一第一分頁,其中該第一分頁為該既定分頁之一配對頁;虛擬編程與該既定分頁間接相關之複數第二分頁,其中該既定分頁對應至一既定字元線,該等第二分頁為對應至鄰近該既定字元線之一或多條字元線之複數物理分頁;以及由該控制器藉由清除與該既定分頁間接相關之複數第三分頁於一第一映射表格中所記錄的物理區塊及物理分頁連結捨棄該等第三分頁,其中該記憶體裝置儲存該第一映射表格,用以紀錄各邏輯分頁係指向哪個物理分頁,該等第三分頁為對應至鄰近該既定字元線之一或多條字元線之複數物理分頁,並且其中該等第三分頁於該記憶體裝置被斷電攻擊前已完成資料寫入。
- 如申請專利範圍第4項所述之資料處理方法,其中由該控制器藉由寫入一預定圖樣覆蓋原始資料以重新編程該既定分頁及該第一分頁。
- 如申請專利範圍第4項所述之資料處理方法,其中由該控制器藉由寫入一虛擬資料以虛擬編程該等第二分頁。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106145271A TWI649755B (zh) | 2017-12-22 | 2017-12-22 | 資料儲存裝置與記憶體裝置之資料處理方法 |
CN201810709333.XA CN109960464A (zh) | 2017-12-22 | 2018-07-02 | 数据储存装置与存储器装置的数据处理方法 |
US16/039,613 US10540118B2 (en) | 2017-12-22 | 2018-07-19 | Data storage device and methods for processing data in the data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106145271A TWI649755B (zh) | 2017-12-22 | 2017-12-22 | 資料儲存裝置與記憶體裝置之資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI649755B true TWI649755B (zh) | 2019-02-01 |
TW201928988A TW201928988A (zh) | 2019-07-16 |
Family
ID=66213521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106145271A TWI649755B (zh) | 2017-12-22 | 2017-12-22 | 資料儲存裝置與記憶體裝置之資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10540118B2 (zh) |
CN (1) | CN109960464A (zh) |
TW (1) | TWI649755B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190092054A (ko) * | 2018-01-30 | 2019-08-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102485694B1 (ko) * | 2018-02-09 | 2023-01-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20200113992A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 |
CN112306742A (zh) | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN112286721A (zh) | 2019-07-23 | 2021-01-29 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
KR20210081641A (ko) * | 2019-12-24 | 2021-07-02 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11106372B2 (en) * | 2019-12-27 | 2021-08-31 | Micron Technology, Inc. | Asynchronous power loss handling approach for a memory sub-system |
KR20220080254A (ko) * | 2020-12-07 | 2022-06-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 컨트롤러 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150103599A1 (en) * | 2013-10-11 | 2015-04-16 | Samsung Electronics Co., Ltd. | Method of operating memory device assuring reliability and memory system |
US20150186224A1 (en) * | 2013-12-26 | 2015-07-02 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20150332770A1 (en) * | 2014-05-13 | 2015-11-19 | Dae Han Kim | Nonvolatile memory device, storage device including the nonvolatile memory device, and operating method of the storage device |
US20160216907A1 (en) * | 2015-01-22 | 2016-07-28 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20160284397A1 (en) * | 2013-10-01 | 2016-09-29 | Samsung Electronics Co., Ltd. | Storage and programming method thereof |
US20170169883A1 (en) * | 2015-12-15 | 2017-06-15 | Samsung Electronics Co., Ltd. | Methods of operating storage devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890655B (zh) * | 2011-07-20 | 2015-07-08 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与有效数据识别方法 |
KR101979392B1 (ko) * | 2012-05-17 | 2019-05-16 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR20150015621A (ko) * | 2013-07-31 | 2015-02-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US8982617B1 (en) * | 2013-11-14 | 2015-03-17 | Sandisk Technologies Inc. | Block closure techniques for a data storage device |
CN106708754B (zh) * | 2015-11-13 | 2020-04-07 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
-
2017
- 2017-12-22 TW TW106145271A patent/TWI649755B/zh active
-
2018
- 2018-07-02 CN CN201810709333.XA patent/CN109960464A/zh active Pending
- 2018-07-19 US US16/039,613 patent/US10540118B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160284397A1 (en) * | 2013-10-01 | 2016-09-29 | Samsung Electronics Co., Ltd. | Storage and programming method thereof |
US20150103599A1 (en) * | 2013-10-11 | 2015-04-16 | Samsung Electronics Co., Ltd. | Method of operating memory device assuring reliability and memory system |
US20150186224A1 (en) * | 2013-12-26 | 2015-07-02 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20150332770A1 (en) * | 2014-05-13 | 2015-11-19 | Dae Han Kim | Nonvolatile memory device, storage device including the nonvolatile memory device, and operating method of the storage device |
US20160216907A1 (en) * | 2015-01-22 | 2016-07-28 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20170169883A1 (en) * | 2015-12-15 | 2017-06-15 | Samsung Electronics Co., Ltd. | Methods of operating storage devices |
Also Published As
Publication number | Publication date |
---|---|
CN109960464A (zh) | 2019-07-02 |
TW201928988A (zh) | 2019-07-16 |
US20190196743A1 (en) | 2019-06-27 |
US10540118B2 (en) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI649755B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
TWI643066B (zh) | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 | |
TWI668700B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
TWI498898B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI662410B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN108268337B (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
CN110083546B (zh) | 记忆装置中进行写入管理的方法、记忆装置和其控制器 | |
CN110096385B (zh) | 存储器***及其操作方法 | |
CN107818057A (zh) | 存储器***及其操作方法 | |
TWI656442B (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
CN108268212A (zh) | 控制器及操作方法 | |
TWI785876B (zh) | 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111984462B (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
TW201926043A (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
JP2006221334A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
US10642509B2 (en) | Method for designating specific world-lines of data storage device as reserved word-lines, and selecting a writing mode accordingly | |
TWI651730B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
TWI747532B (zh) | 記憶體裝置 | |
US20160320973A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI811130B (zh) | 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置 | |
TWI686698B (zh) | 邏輯轉實體表更新方法及儲存控制器 | |
TWI664569B (zh) | 資料儲存裝置及系統資訊的編程方法 |