TWI655640B - 資料儲存裝置與資料處理方法 - Google Patents

資料儲存裝置與資料處理方法 Download PDF

Info

Publication number
TWI655640B
TWI655640B TW107102524A TW107102524A TWI655640B TW I655640 B TWI655640 B TW I655640B TW 107102524 A TW107102524 A TW 107102524A TW 107102524 A TW107102524 A TW 107102524A TW I655640 B TWI655640 B TW I655640B
Authority
TW
Taiwan
Prior art keywords
memory
data
memory block
block
memory controller
Prior art date
Application number
TW107102524A
Other languages
English (en)
Other versions
TW201933347A (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 TW107102524A priority Critical patent/TWI655640B/zh
Priority to CN201810769191.6A priority patent/CN110069362B/zh
Priority to US16/255,915 priority patent/US10809943B2/en
Application granted granted Critical
Publication of TWI655640B publication Critical patent/TWI655640B/zh
Publication of TW201933347A publication Critical patent/TW201933347A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器於資料儲存裝置之一初始化過程中判斷於先前執行用以將資料寫入一第一記憶體區塊之一第一寫入操作之過程中是否發生過非預期斷電。若記憶體控制器判斷於先前執行一寫入操作之過程中發生過非預期斷電,記憶體控制器選擇不同於該第一記憶體區塊之一第二記憶體區塊,並且於爾後執行一第二寫入操作時,將資料寫入第二記憶體區塊。

Description

資料儲存裝置與資料處理方法
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可有效解決為避免資料頁所儲存之資料因非預期斷電被破壞而導致的快閃記憶體利用率下降及耗時過久的問題。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
一般而言,若在編輯快閃記憶體時遭遇非預期斷電(Sudden Power Off,縮寫為SPO),正在寫入的資料或已寫入的資料可能會被破壞。舉例來說,當快閃記憶體在資料寫入的過程時突然發生斷電時,除了目前正在寫入的資料頁可能會發生毀損之外,與目前正在寫入的資料頁位在同一條字元線上的其他資料頁(例如,其配對頁)亦會同時產生毀損。為避免資料頁所儲存之資料因非預期斷電被破壞,通常快閃記憶體會實施一些保護機制,例如,於一些資料頁中寫入無效資料,或者將 部分資料重新寫入,以加強其穩定性。然而,隨著快閃記憶體容量的提升,配對頁的距離越來越大,導致寫入所需耗費的時間也越來越長。此外,寫入無效資料或者將部分資料重新寫入的操作,也會導致快閃記憶體利用率大幅下降。
有鑒於此,本發明提出一種資料處理方法,可有效解決為避免資料頁所儲存之資料因非預期斷電被破壞而導致的快閃記憶體利用率下降及耗時過久的問題。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器於資料儲存裝置之一初始化過程中判斷於先前執行用以將資料寫入一第一記憶體區塊之一第一寫入操作之過程中是否發生過非預期斷電。若記憶體控制器判斷於先前執行一寫入操作之過程中發生過非預期斷電,記憶體控制器選擇不同於該第一記憶體區塊之一第二記憶體區塊,並且於爾後執行一第二寫入操作時,將資料寫入第二記憶體區塊。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數資料頁,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,該方法包括:由記憶體控制器於資料儲存裝置之一初始化過程中判斷於先前執行用以將資料寫入一第一記憶體區塊之一第一 寫入操作之過程中是否發生過非預期斷電;以及若記憶體控制器判斷於先前執行一寫入操作之過程中發生過非預期斷電,由記憶體控制器選擇不同於第一記憶體區塊之一第二記憶體區塊,並且於爾後執行一第二寫入操作時,將資料寫入第二記憶體區塊。
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112M‧‧‧唯讀記憶體
112C‧‧‧程式碼
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧記憶體裝置
130‧‧‧主機裝置
132‧‧‧編碼器
134‧‧‧解碼器
200‧‧‧記憶體區塊
202‧‧‧浮動閘極電晶體
P0、P1、P2、P10、P11、P(3N-1)、P488、P500、P501、P516、P517‧‧‧資料頁
WL0、WL1、WL2、WLN‧‧‧字元線
第1圖係顯示根據本發明之一實施例所述之記憶體裝置的示意圖。
第2圖係顯示根據本發明之一實施例所述之記憶體裝置之一記憶體區塊的示意圖。
第3圖係顯示根據本發明之一實施例所述之一資料頁範例。
第4圖係顯示根據本發明之一實施例所述之一種資料處理方法流程圖。
第5圖係顯示根據本發明之一實施例所述之一記憶體區塊示意圖。
第6圖係顯示根據本發明之另一實施例所述之資料處理方法流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述 任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作, 例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中至少包含了多層式儲存(Multiple-Level Cell,MLC)記憶體區塊或是三層式儲存(Triple-Level Cell,TLC)記憶體區塊,而在以下的實施例中,係以三層式儲存記憶體區 塊來作為說明。請參考第2圖,第2圖為根據本發明之一實施例所述之記憶體裝置120中一記憶體區塊200的示意圖。如第2圖所示,記憶體區塊200係為三層式儲存架構,亦即記憶體區塊200具有N條字元線WL0~WLN,其中N為一正整數。每一條字元線可構成三個資料頁,故記憶體區塊200共包含有3*N個資料頁(P0~P(3N-1))。第2圖中的每一個儲存單元(亦即每一個浮動閘極電晶體202)可以儲存三個位元,亦即包含最低有效位元(LSB)、中間有效位元(CSB)與最高有效位元(MSB)的三個位元。而每一條字元線WL0~WLN上的多個儲存單元所儲存的最低有效位元構成了該字元線對應的第一個資料頁(最低有效位元資料頁(LSB page),或稱較低資料頁(Lower page,LP))、所儲存的中間有效位元構成了該字元線對應的第二個資料頁(中間有效位元資料頁(CSB page),或稱較高資料頁(Upper page,UP))、以及所儲存的最高有效位元構成了該字元線對應的第三個資料頁(最高有效位元資料頁(MSB page),或稱額外資料頁(Extra page,XP))。
值得注意的是,於多層式儲存(MLC)記憶體區塊的實施例中,每一個儲存單元可以儲存多個(多於一個)位元。
在一般的狀況下,同一條字元線上的三個資料頁不一定會具有連續的序號,舉例來說,字元線WL1上的多個儲存單元所儲存的最低有效位元構成了資料頁P1,字元線WL1上的多個儲存單元所儲存的中間有效位元構成了資料頁P10,以及字元線WL1上的多個儲存單元所儲存的最高有效位元構成了資料頁P11。
一般而言,若是字元線WL1上的最低有效位元資料頁(亦即,第二圖中例示的資料頁P1)在資料寫入的過程中發生非預期斷電(Sudden Power Off,縮寫為SPO)而毀損時,則字元線WL1上的中間有效位元資料頁(亦即,第二圖中例示的資料頁P10)及最高有效位元資料頁(亦即,第二圖中例示的資料頁P11)便無法再被使用。此外,若是字元線WL1上的中間有效位元資料頁或最高有效位元資料頁在資料寫入的過程中發生非預期斷電而毀損時,則字元線WL1上的最低有效位元資料頁所儲存之資料亦會發生毀損。
因此,於現今的設計中,為避免資料頁所儲存之資料因非預期斷電被破壞,通常會實施一些保護機制。例如,當判斷被非預期斷電攻擊之資料頁為最低有效位元資料頁(以下簡稱為LP)時,記憶體控制器110會寫入無效的資料直到此被攻擊之最低有效位元資料頁(LP)的配對頁,即,同一條字元線上的中間有效位元資料頁(以下簡稱為UP)及最高有效位元資料頁(以下簡稱為XP)。又例如,當判斷被非預期斷電攻擊之資料頁為中間有效位元資料頁(UP)或最高有效位元資料頁(XP),則將一部分先前已被寫入的資料重新寫入於其他的空白頁面,以加強其穩定性,需被重新寫入的資料可自被攻擊之資料頁往回追朔直到被攻擊之資料頁的配對頁,即,同一條字元線上的最低有效位元資料頁(LP)。若無法確定被攻擊之頁面為哪一頁,則可能依序實施上述兩種保護機制,以確保資料頁所儲存之資料不會因非預期斷電被破壞。
以第2圖為例,在上述的資料頁P1發生毀損之後, 若是後續仍然要將資料寫入至記憶體區塊200的後續資料頁時,為了避免將資料誤寫到字元線WL1上的資料頁P10、P11,記憶體控制器110可以從資料頁P1開始一直寫入無效的資料直到資料頁P11為止,之後再從資料頁P12開始寫入有效資料。如上所述,雖然此方式可以避免資料寫入錯誤,但資料頁P2~P9也浪費掉了。特別是在記憶體裝置120為立體NAND型快閃記憶體(3D NAND-type flash)時,字元線之最低有效位元資料頁、中間有效位元資料頁及最高有效位元資料頁的距離可能會更遠(亦即,資料頁序號的差異會較大),因此上述資料頁浪費的情形會更嚴重。
第3圖係顯示根據本發明之一實施例所述之一資料頁範例,用以顯示出資料頁的序號編排範例,其中記憶體裝置於此實施例中為一立體NAND型快閃記憶體。以3D TLC為例,由第3圖所示之資料頁序號編排範例中可看出,配對頁的序號差異相當大,且一條字元線又包含了12個超級區塊(Super Block,縮寫為SB),若發生非預期斷電,則整條字元線上的12個超級區塊都可能會受到傷害,所以要把整條字元線都寫入無效的資料,方能於後續寫入操作中從下一條字元線繼續使用。舉例而言,假設非預期斷電發生在資料頁206,則必須寫入無效的資料直到資料頁310,以確保整條字元線都沒有繼續使用。因此,於此範例中,非預期斷電發生後,可能需要寫104頁無效的資料。若主機裝置是處於不穩定的狀態,例如,主機裝置的電池電量已近乎耗盡,則極有可能連續發生非預期斷電。若要實施上述保護措施,勢必得大量放棄的資料頁,進而導致記 憶體裝置消耗的速度非常的快,可使用率大幅下降,使得記憶體裝置很容易因容量不足而必須執行垃圾回收(Garbage Collection,縮寫為GC)程序。此外,由於配對頁的序號差距相當大,因此寫入無效資料或重新寫入資料也會耗費較多的時間。若寫入無效資料及/或重新寫入資料所需耗費的時間超過資料儲存裝置之開機程序所允許的初始化時間,則可能進一步導致記憶體裝置初始化失敗。
有鑒於此,本發明提出一種資料處理方法,可有效解決為避免資料頁所儲存之資料因非預期斷電被破壞而導致的快閃記憶體利用率下降及耗時過久的問題。
第4圖係顯示根據本發明之一實施例所述之一種資料處理方法流程圖。所述之資料處理方法適用於包含一記憶體控制器及一記憶體裝置之一資料儲存裝置,例如,資料儲存裝置100。該方法包括:判斷於先前執行用以將資料寫入記憶體裝置之一第一記憶體區塊之一寫入操作之過程中是否發生過非預期斷電(SPO)(步驟S402)。若否,則無後續操作。亦即,於爾後執行一第二寫入操作時,可繼續將資料寫入第一記憶體區塊。若是,則由記憶體控制器選擇不同於第一記憶體區塊之一第二記憶體區塊(步驟S404),並且於爾後執行一第二寫入操作時,將資料寫入第二記憶體區塊(步驟S406)。
值得注意的是,於步驟S404中,所選擇的第二記憶體區塊更可用於對於先前已被寫入的資料實施一些保護機制,以確保已被寫入的資料不會因非預期斷電被破壞。以下段落將有更詳細的介紹。
根據本發明之一實施例,第一記憶體區塊及第二記憶體區塊係用以作為資料緩存器(Buffer)使用。
根據本發明之一實施例,步驟S402的判斷可於資料儲存裝置之一初始化過程中被執行。舉例而言,於資料儲存裝置被供電時,記憶體控制器110可於資料儲存裝置之一初始化過程中執行步驟S402的判斷。記憶體控制器110可先藉由逐頁掃描目前作為資料緩存器的第一記憶體區塊的內容,找出第一記憶體區塊的第一個空白資料頁。當第一記憶體區塊的第一個空白資料頁被找出後,則可推斷第一記憶體區塊中最後一個被寫入資料的資料頁序號。
根據本發明之一實施例,若無對應的旗標值或參數值可指示出先前一次關機是否為非預期斷電,則為了確保已被寫入的資料不會因非預期斷電被破壞,記憶體控制器110可預設先前一次關機為非預期斷電,並且執行一既定保護機制。
第5圖係顯示根據本發明之一實施例所述之一記憶體區塊示意圖。如圖所示,記憶體控制器110可先藉由逐頁掃描目前記憶體區塊(例如,第一記憶體區塊)的內容,找出第一個空白資料頁,例如,資料頁P501,再推斷出最後一個被寫入資料的資料頁序號,例如,資料頁P500。根據本發明之一實施例,若先前一次關機為非預期斷電,則遭受非預期斷電攻擊之資料頁可能是資料頁P500或者次一頁,即,資料頁P501。例如,當資料頁P500的寫入操作完成後並且於資料被寫入資料頁P501之前發生了非預期斷電,則遭受非預期斷電攻擊之資料頁為資料頁P501。
於執行既定保護機制時,若最後一個被寫入資料的資料頁P500或第一個空白資料頁P501為最低有效位元資料頁(LP),為了避免後續會將資料寫到同一條字元線上的其他資料頁,記憶體控制器110可自第一個空白資料頁P501開始往後(例如,以資料頁序號遞增的方向)一直寫入無效的資料直到最後一個被寫入資料的資料頁的配對頁或第一個空白資料頁的配對頁為止(當最後一個被寫入資料的資料頁P500或第一個空白資料頁P501為最低有效位元資料頁(LP)時)。例如,寫入無效的資料直到資料頁P516,此為虛擬編程(dummy programming)操作。接著,若最後一個被寫入資料的資料頁P500或第一個空白資料頁P501為中間有效位元資料頁(UP)或最高有效位元資料頁(XP),記憶體控制器110可自最後一個被寫入資料的資料頁P500開始往前(例如,以資料頁序號遞減的方向)尋找一既定數量的資料頁,直到最後一個被寫入資料的資料頁的配對頁或第一個空白資料頁的的配對頁為止(當最後一個被寫入資料的資料頁P500或第一個空白資料頁P501為中間有效位元資料頁(UP)或最高有效位元資料頁(XP)時)。例如,自最後一個被寫入資料的資料頁P500開始往前直到資料頁P488。記憶體控制器110可將此既定數量的資料頁所被寫入的資料讀出,並自虛擬編程過後的下一個空白頁開始,例如,自資料頁P517,將資料重新寫入,此為重新編程操作(restore programming)。上述操作為記憶體控制器110為了確保已被寫入的資料不會因非預期斷電被破壞而執行的既定保護機制。
根據本發明之一實施例,於執行上述既定保護機 制後,或者於執行上述既定保護機制的過程中(例如,於讀出上述既定數量的資料頁的資料時),記憶體控制器110可進一步偵測第一記憶體區塊中是否有任一資料頁之一錯誤位元大於一既定臨界值。例如,記憶體控制器110可藉由利用錯誤更正碼解碼各資料頁時所得的錯誤位元判斷是否大於一既定臨界值。當第一記憶體區塊在上述既定數量的資料頁中有任一資料頁之一錯誤位元大於該既定臨界值時,則判斷於先前執行一寫入操作之過程中發生過非預期斷電。接著,如上述,則由記憶體控制器選擇不同於第一記憶體區塊之一第二記憶體區塊(步驟S404),並且於爾後執行一第二寫入操作時,將資料寫入第二記憶體區塊(步驟S406)。
值得注意的是,根據本發明之另一實施例,記憶體控制器110亦可於執行上述既定保護機制之前,先偵測是否第一記憶體區塊中有任一資料頁之一錯誤位元大於一既定臨界值。
此外,值得注意的是,根據本發明之另一實施例,記憶體控制器110亦可於所有已被寫入資料的資料頁中偵測是否有任一資料頁之一錯誤位元大於該既定臨界值。
此外,值得注意的是,根據本發明之另一實施例,當記憶體控制器110判斷於先前執行用以將資料寫入記憶體裝置之第一記憶體區塊之寫入操作之過程中並未發生過非預期斷電(步驟S402的否路徑),亦可決定不執行上述既定保護機制。換言之,本發明並不限於是否必須執行上述既定保護機制。
根據本發明之一實施例,第一記憶體區塊與第二 記憶體區塊可以為多層式儲存架構。即,第一記憶體區塊與第二記憶體區塊為包含複數可以儲存多個位元之儲存單元之多層式儲存(MLC)記憶體區塊。根據本發明之另一實施例,第一記憶體區塊與第二記憶體區塊可以為三層式儲存架構。即,第一記憶體區塊與第二記憶體區塊為包含複數可以儲存三個位元之儲存單元之三層式儲存(TLC)記憶體區塊。
根據本發明之一實施例,於步驟S406中,記憶體控制器110將第二記憶體區塊作為單層式儲存(Single-Level Cell,SLC)記憶體區塊使用。例如,以第二記憶體區塊為三層式儲存架構為例,於步驟S406中,對於各字元線所構成三個資料頁,記憶體控制器110僅編程其中一個資料頁,例如,記憶體控制器110僅將資料寫入最低有效位元資料頁(LP)。又例如,記憶體控制器110可發出一控制指令至記憶體裝置120,使得第二記憶體區塊係以SLC記憶體區塊的方式被存取,亦即,於爾後將資料編程至或讀取自第二記憶體區塊時,記憶體控制器110係以單層方式將資料編程至或讀取自第二記憶體區塊。
此外,根據本發明之一實施例,於執行步驟S406前,記憶體控制器110亦可將第一記憶體區塊內需重新編程的資料頁所儲存的資料讀出並重新寫入至第二記憶體區塊內,以加強其穩定性。如上述,記憶體控制器110可自第一記憶體區塊內最後一個被寫入資料的資料頁開始往前(例如,以資料頁序號遞減的方向)直到最後一個被寫入資料的資料頁的配對頁或第一個空白資料頁的配對頁為止,尋找一既定數量的資料頁,將此既定數量的資料頁所被寫入的資料讀出,並以單層編程方 式將資料寫入至第二記憶體區塊內(即,上所述之將第二記憶體區塊作為單層式儲存(SLC)記憶體區塊使用)。
根據本發明之一實施例,雖第二記憶體區塊所儲存的資料容量變少(例如,變成原來可儲存的1/3),但以將第二記憶體區塊之資料頁編程為SLC資料頁的方式編程第二記憶體區塊,可有效解決上述為避免資料頁所儲存之資料因非預期斷電被破壞而導致的快閃記憶體利用率下降及耗時過久的問題。特別是,當主機裝置是處於不穩定的狀態,例如,主機裝置的電池電量已近乎耗盡,則極有可能連續發生非預期斷電,導致上述問題會更加惡化。藉由改變資料緩存器的編程方式,可有效避免必須放棄大量資料頁的情況,亦可節省於初始化過程中因必須執行上述虛擬編程及/或重新編程所耗費的時間。
根據本發明之一實施例,可於每次記憶體區塊被寫滿後,決定是否繼續將其他具有多/三層式儲存架構之記憶體區塊作為單層式儲存(SLC)記憶體區塊使用。
第6圖係顯示根據本發明之另一實施例所述之資料處理方法流程圖。此流程適用於上述第二記憶體被寫滿後,決定是否繼續執行上述將具有多/三層式儲存架構之記憶體區塊的資料頁編程為SLC資料頁的操作。該方法包括:判斷於先前執行用以將資料寫入第二記憶體區塊之寫入操作之過程中是否發生過非預期斷電(步驟S602)。若將資料寫入第二記憶體區塊之任一次寫入操作過程中有發生過非預期斷電,則記憶體控制器110選擇一第三記憶體區塊,並繼續以單層編程方式將資料寫入至第三記憶體區塊內(即,將第三記憶體區塊作為單 層式儲存(SLC)記憶體區塊使用)(步驟S604),其中,第三記憶體區塊如同上述第一記憶體區塊與第二記憶體區塊,為多層式或三層式儲存架構,包含複數可以儲存多個/三個位元之儲存單元。若將資料寫入第二記憶體區塊之寫入操作過程中均未發生過非預期斷電,記憶體控制器110選擇一第三記憶體區塊,並以原始所對應之多層/三層編程方式將資料寫入至第三記憶體區塊內(即,不將第三記憶體區塊作為單層式儲存(SLC)記憶體區塊使用)(步驟S606),換言之,第三記憶體區塊之複數資料頁會依其原本所具有的儲存架構來編程資料。
藉由上述資料處理方法的執行,可有效解決上述為避免資料頁所儲存之資料因非預期斷電被破壞而導致的快閃記憶體利用率下降及耗時過久的問題。特別是,當主機裝置是處於不穩定的狀態,例如,主機裝置的電池電量已近乎耗盡,則極有可能連續發生非預期斷電,上述問題會更加惡化。藉由改變資料緩存器的編程方式,可有效避免必須放棄大量資料頁的情況,亦可節省於初始化過程中因必須執行上述虛擬編程及/或重新編程所耗費的時間。
申請專利範圍中用以修飾元件之“第一”、“第二”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍 當視後附之申請專利範圍所界定者為準。

Claims (10)

  1. 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,各記憶體區塊包括複數資料頁;以及一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器於該資料儲存裝置之一初始化過程中判斷於先前執行用以將資料寫入一第一記憶體區塊之一第一寫入操作之過程中是否發生過非預期斷電(Sudden Power Off,SPO),若該記憶體控制器判斷於先前執行一該第一寫入操作之過程中發生過非預期斷電,該記憶體控制器選擇不同於該第一記憶體區塊之一第二記憶體區塊,並且於爾後執行一第二寫入操作時,將資料寫入該第二記憶體區塊。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該第一記憶體區塊與該第二記憶體區塊為包含複數可以儲存多個位元之儲存單元之三層式儲存(Triple-Level Cell,TLC)記憶體區塊。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中於執行該第二寫入操作時,該記憶體控制器將該第二記憶體區塊作為一單層式儲存(Single-Level Cell,SLC)記憶體區塊使用。
  4. 如申請專利範圍第1項所述之資料儲存裝置,其中於該初始化過程中,該記憶體控制器更偵測是否該第一記憶體區塊中有任一資料頁之一錯誤位元大於一既定臨界值,並且當該第一記憶體區塊中有任一資料頁之一錯誤位元大於該既定臨界值時,該記憶體控制器判斷於先前執行一寫入操作之過程中發生過非預期斷電。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中該記憶體控制器僅偵測該第一記憶體區塊中一既定數量之資料頁之錯誤位元,用以判斷於先前執行一寫入操作之過程中是否發生過非預期斷電。
  6. 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數資料頁,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括:由該記憶體控制器於該資料儲存裝置之一初始化過程中判斷於先前執行用以將資料寫入一第一記憶體區塊之一第一寫入操作之過程中是否發生過非預期斷電(SPO);以及若該記憶體控制器判斷於先前執行該第一寫入操作之過程中發生過非預期斷電,由該記憶體控制器選擇不同於該第一記憶體區塊之一第二記憶體區塊,並且於爾後執行一第二寫入操作時,將資料寫入該第二記憶體區塊。
  7. 如申請專利範圍第6項所述之資料處理方法,其中該第一記憶體區塊與該第二記憶體區塊為包含複數可以儲存多個位元之儲存單元之三層式儲存(Triple-Level Cell,TLC)記憶體區塊。
  8. 如申請專利範圍第7項所述之資料處理方法,更包括:於執行該第二寫入操作時,將該第二記憶體區塊作為一單層式儲存(Single-Level Cell,SLC)記憶體區塊使用。
  9. 如申請專利範圍第6項所述之資料處理方法,更包括:於該初始化過程中,由該記憶體控制器偵測該第一記憶體區塊中是否有任一資料頁之一錯誤位元大於一既定臨界值;以及當該第一記憶體區塊中有任一資料頁之一錯誤位元大於該既定臨界值時,判斷於先前執行一寫入操作之過程中發生過非預期斷電。
  10. 如申請專利範圍第9項所述之資料處理方法,其中該第一記憶體區塊中僅一既定數量之資料頁被偵測。
TW107102524A 2018-01-24 2018-01-24 資料儲存裝置與資料處理方法 TWI655640B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107102524A TWI655640B (zh) 2018-01-24 2018-01-24 資料儲存裝置與資料處理方法
CN201810769191.6A CN110069362B (zh) 2018-01-24 2018-07-13 数据储存装置与数据处理方法
US16/255,915 US10809943B2 (en) 2018-01-24 2019-01-24 Data processing method for improving utilization rate and program time after sudden power off event and associated data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107102524A TWI655640B (zh) 2018-01-24 2018-01-24 資料儲存裝置與資料處理方法

Publications (2)

Publication Number Publication Date
TWI655640B true TWI655640B (zh) 2019-04-01
TW201933347A TW201933347A (zh) 2019-08-16

Family

ID=66996064

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107102524A TWI655640B (zh) 2018-01-24 2018-01-24 資料儲存裝置與資料處理方法

Country Status (3)

Country Link
US (1) US10809943B2 (zh)
CN (1) CN110069362B (zh)
TW (1) TWI655640B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI802324B (zh) * 2022-03-18 2023-05-11 群聯電子股份有限公司 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733360B (zh) * 2020-03-09 2021-07-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
TWI779610B (zh) * 2021-05-17 2022-10-01 瑞昱半導體股份有限公司 偵測快閃記憶體模組的方法及相關的系統晶片

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201428757A (zh) * 2012-11-14 2014-07-16 Ibm 揮發性及快閃記憶體間資料的備份與復原
US20150143035A1 (en) * 2013-11-21 2015-05-21 Samsung Electronics Co., Ltd. User device having a host flash translation layer (ftl), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
TW201631586A (zh) * 2015-02-27 2016-09-01 愛思開海力士有限公司 非揮發性記憶體裝置和操作方法及包括其的資料存儲裝置
US20160378359A1 (en) * 2015-06-24 2016-12-29 Dae-Hoon Jang Storage device including nonvolatile memory device
TW201701291A (zh) * 2015-06-18 2017-01-01 愛思開海力士有限公司 非揮發性記憶體系統及其操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762661B2 (en) * 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
CN103377129B (zh) * 2012-04-11 2016-04-06 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
KR101993180B1 (ko) * 2012-07-23 2019-06-27 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR102102224B1 (ko) * 2013-10-01 2020-04-20 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법
US9710650B2 (en) * 2014-06-10 2017-07-18 Stmicroelectronics (Rousset) Sas Protection of data stored in a volatile memory
CN104408126B (zh) * 2014-11-26 2018-06-15 杭州华为数字技术有限公司 一种数据库的持久化写入方法、装置和系统
TWI512462B (zh) * 2015-02-11 2015-12-11 Phison Electronics Corp 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
WO2017028296A1 (en) * 2015-08-20 2017-02-23 Micron Technology, Inc. Solid state storage device with quick boot from nand media
TWI590051B (zh) * 2016-06-21 2017-07-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201428757A (zh) * 2012-11-14 2014-07-16 Ibm 揮發性及快閃記憶體間資料的備份與復原
US20150143035A1 (en) * 2013-11-21 2015-05-21 Samsung Electronics Co., Ltd. User device having a host flash translation layer (ftl), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
TW201631586A (zh) * 2015-02-27 2016-09-01 愛思開海力士有限公司 非揮發性記憶體裝置和操作方法及包括其的資料存儲裝置
TW201701291A (zh) * 2015-06-18 2017-01-01 愛思開海力士有限公司 非揮發性記憶體系統及其操作方法
US20160378359A1 (en) * 2015-06-24 2016-12-29 Dae-Hoon Jang Storage device including nonvolatile memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI802324B (zh) * 2022-03-18 2023-05-11 群聯電子股份有限公司 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置
US11907059B2 (en) 2022-03-18 2024-02-20 Phison Electronics Corp. Abnormal power loss recovery method, memory control circuit unit, and memory storage device

Also Published As

Publication number Publication date
US20190227748A1 (en) 2019-07-25
US10809943B2 (en) 2020-10-20
CN110069362B (zh) 2022-09-20
TW201933347A (zh) 2019-08-16
CN110069362A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
TWI677879B (zh) 資料儲存裝置與資料處理方法
US10474573B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device
TWI664634B (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
TWI626541B (zh) 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TW201351425A (zh) 用於解碼取決於干擾條件下之資料之系統與方法
TWI696074B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI655640B (zh) 資料儲存裝置與資料處理方法
TWI807674B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
TWI692771B (zh) 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
CN111399751B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
US11194502B1 (en) Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module
TWI693520B (zh) 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置
TWI722938B (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TWI661353B (zh) 用來於一記憶裝置中為錯誤處置進行資料處理之方法、記憶裝置及其控制器以及電子裝置
TWI739440B (zh) 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置
US11347433B2 (en) Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device
TWI687930B (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
TWI670598B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI664527B (zh) 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
TW202028967A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US11249676B2 (en) Electronic device, flash memory controller and associated control method
US11947818B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
TWI691967B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置