TW201901451A - 數據儲存裝置及其操作方法 - Google Patents

數據儲存裝置及其操作方法 Download PDF

Info

Publication number
TW201901451A
TW201901451A TW106143984A TW106143984A TW201901451A TW 201901451 A TW201901451 A TW 201901451A TW 106143984 A TW106143984 A TW 106143984A TW 106143984 A TW106143984 A TW 106143984A TW 201901451 A TW201901451 A TW 201901451A
Authority
TW
Taiwan
Prior art keywords
level
area
management block
block
data
Prior art date
Application number
TW106143984A
Other languages
English (en)
Other versions
TWI816650B (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 韓商愛思開海力士有限公司
Publication of TW201901451A publication Critical patent/TW201901451A/zh
Application granted granted Critical
Publication of TWI816650B publication Critical patent/TWI816650B/zh

Links

Classifications

    • 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/1438Restarting or rejuvenating
    • 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
    • G06F3/0607Improving 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
    • 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/0793Remedial or corrective actions
    • 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
    • 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/1417Boot up procedures
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • G06F3/0679Non-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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Electrotherapy Devices (AREA)
  • Debugging And Monitoring (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

一種數據儲存裝置包括:包括多個記憶體塊的非揮發性記憶體裝置,每個記憶體塊包括多個區域;以及適於控制非揮發性記憶體裝置的控制器,該控制器包括:塊指定單元,適於透過將開始數據儲存在記憶體塊中的2級管理塊中、將2級管理塊的位置儲存在記憶體塊中的1級管理塊中並將完整性檢查數據儲存在2級管理塊中來執行2級指定操作,以及恢復單元,適於在發生突然斷電的情況下,根據與儲存在1級管理塊中的最後位置相對應的當前的2級管理塊的狀態,對1級管理塊執行恢復操作。

Description

數據儲存裝置及其操作方法
各種示例性實施例總體關於一種數據儲存裝置,並且更特別地關於一種包括非揮發性記憶體裝置的數據儲存裝置。
數據儲存裝置回應於寫入請求儲存由外部裝置提供的數據。數據儲存裝置還可以回應於讀取請求將儲存的數據提供給外部裝置。使用數據儲存裝置的外部裝置的示例包括電腦、數位相機、行動電話等。數據儲存裝置可以在外部裝置的製造期間被嵌入到外部裝置中,或者可以被單獨製造並且隨後被連接到外部裝置。
在實施例中,數據儲存裝置可以包括:非揮發性記憶體裝置,其包括多個記憶體塊,每個記憶體塊包括多個區域;以及適於控制非揮發性記憶體裝置的控制器,該控制器包括:塊指定單元,適於透過將開始數據儲存在記憶體塊中的2級管理塊中、將2級管理塊的位置儲存在記憶體塊中的1級管理塊中並將完整性檢查數據儲存在2級管理塊中來執行2級指定操作;以及恢復單元,適於在發生突然斷電的情況下,根據與儲存在1級管理塊中的最後位置相對應的當前的2級管理塊的狀態,對1級管理塊執行恢復操作。
在實施例中,用於操作數據儲存裝置的方法可以包括:透過將開始數據儲存在包括多個2級區域的2級管理塊中、將2級管理塊的位置儲存在包括多個1級區域的1級管理塊中並且將完整性檢查數據儲存在2級管理塊中來執行2級指定操作;以及在發生突然斷電的情況下,根據與儲存在1級管理塊中的最後位置相對應的當前的2級管理塊的狀態,對1級管理塊執行恢復操作。
在實施例中,控制器可以包括:塊指定單元,適於指定非揮發性記憶體裝置中用於儲存管理數據的第一記憶體塊,以及控制非揮發性記憶體裝置將第一數據和第二數據依序地儲存在第一記憶體塊中並且將第一記憶體塊的位置資訊儲存在其第二記憶體塊中;以及恢復單元,適於在突然斷電之後根據第一記憶體塊的狀態來控制非揮發性記憶體裝置對第二記憶體塊執行恢復操作。
在實施例中,一種控制器的方法可以包括:指定非揮發性記憶體裝置中用於儲存管理數據的第一記憶體塊;控制非揮發性記憶體裝置將第一數據和第二數據依序地儲存在第一記憶體塊中,並將第一記憶體塊的位置資訊儲存在其第二記憶體塊中;以及控制非揮發性記憶體裝置在突然斷電之後根據第一記憶體塊的狀態對第二記憶體塊執行恢復操作。
相關申請案的交叉引用: 本申請案請求於2017年5月19日提交的申請號為10-2017-0062029的韓國申請案的優先權,其透過引用被全部併入本文。
在下文中,將透過本發明的示例性實施例,參照附圖來描述根據本發明的數據儲存裝置及其操作方法。然而,本發明可以以不同的形式實施,並且不應該被解釋為限於本文中闡述的實施例。相反,提供這些實施例是為了詳細描述本發明以使本發明所屬領域的技術人員能夠實施本發明的技術構思。
應當理解的是,本發明的實施例不限於附圖中示出的細節,附圖不一定按比例繪製,並且在一些情況下,比例可能被放大以便更清楚地描繪本發明的某些特徵。雖然使用了特定的術語,但是應該認識到,所使用的術語僅用於描述特定的實施例,並不意圖限制本發明的範圍。
應該進一步理解的是,當元件被稱為「連接到」或「耦接到」另一個元件時,其可以直接地在另一個元件上、連接到另一個元件或者耦接到另一個元件,或者可能存在一個或多個中間元件。另外,還將理解的是,當元件被稱為在兩個元件「之間」時,其可以是兩個元件之間的唯一元件,或者也可以存在一個或多個中間元件。
當短語「…和…中的至少一個」在本文中與項目列表一起使用時,其指來自列表的單個項目或者清單中的項目的任何組合。例如,「A、B和C中的至少一個」指僅A,或者僅B,或者僅C,或者A、B和C的任何組合。
如本文所使用的術語「或」是指兩個或更多個替代方案中的任一個,而不是指兩者或其任何組合。
如本文所使用的,除非上下文另有明確指示,否則單數形式也意圖包括複數形式。將進一步理解的是,當在本說明書中使用時,術語「包括」、「包括有」、「包含」和「包含有」指明所述要素的存在,並且不排除存在或添加一個或多個其他要素。如本文所使用的,術語「和/或」包括一個或多個相關所列項目的任何和所有組合。
除非另外定義,否則考慮到本發明,本文使用的包括技術和科學術語的所有術語具有的含義與本發明所屬領域的普通技術人員通常理解的含義相同。將進一步理解的是,諸如在通用辭典中定義的那些術語應該被解釋為具有與其在本發明的上下文和相關領域中的含義一致的含義,並且將不被解釋為理想化的或過於正式的意義,除非在本文中明確地如此定義。
在以下描述中,闡述了許多具體細節以便提供對本發明的全面理解。本發明可以在沒有這些具體細節中的一些或全部的情況下被實施。 在其他情況下,沒有詳細描述公眾知悉的進程結構和/或進程,以免不必要地模糊本發明。
還應注意的是,在一些情況下,如對於相關領域的技術人員來說顯而易見的,結合一個實施例描述的也被稱為特徵的元件可以單獨使用或與另一個實施例的其它元件結合使用,除非另有特別說明。
在下文中,將參照附圖詳細描述本發明的各種示例性實施例。
圖1是示出根據本發明的實施例的數據儲存裝置10的示例的方塊圖。
數據儲存裝置10可回應於來自外部裝置的寫入請求儲存從外部裝置提供的數據。此外,數據儲存裝置10可以被配置為回應於來自外部裝置的讀取請求將儲存的數據提供給外部裝置。
數據儲存裝置10可以由國際個人電腦儲存卡協會(PCMCIA)卡、標準快閃記憶體(CF)卡、智慧媒體卡、記憶棒、各種多媒體卡(MMC、eMMC、RS-MMC和MMC-Micro)、各種安全數位卡(SD、Mini-SD和Micro-SD)、通用快閃記憶體儲存(UFS)、固態硬碟(SSD)等來配置。
數據儲存裝置10可以包括控制器100和非揮發性記憶體裝置200。
控制器100可以控制數據儲存裝置10的一般操作。控制器100可以透過控制非揮發性記憶體裝置200來將數據儲存在非揮發性記憶體裝置200中。
控制器100可以基於各種管理數據來控制數據儲存裝置10的操作。在數據儲存裝置10操作時,管理數據可以被重新產生或更新。控制器100可以將管理數據儲存在被指定為2級管理塊的非揮發性記憶體裝置200的記憶體塊B2中。在需要的情況下,例如啟動時,控制器100可以讀取和使用管理數據。控制器100可以將2級管理塊B2的位置儲存在被指定為1級管理塊的記憶體塊B1中。當需要存取2級管理塊B2時,控制器100可以參考儲存在1級管理塊B1中的位置。
控制器100可以包括塊指定單元110和恢復單元120。
塊指定單元110可以將非揮發性記憶體裝置200中包括的記憶體塊B1~Bi中的任何一個空記憶體塊B2指定為2級管理塊。當先前指定的2級管理塊不再具有儲存管理數據的空區域時,塊指定單元110可以指定新的2級管理塊B2。
塊指定單元110可以根據預定的進程來執行2級指定操作,以指定2級管理塊B2。首先,塊指定單元110可以將開始數據儲存在新的2級管理塊B2中。開始數據可以是最初儲存在2級管理塊B2中的管理數據。在儲存開始數據之後,塊指定單元110可以將2級管理塊B2的位置儲存在1級管理塊B1中。在儲存2級管理塊B2的位置之後,塊指定單元110可以將完整性檢查數據儲存在2級管理塊B2中。當完整性檢查數據已被儲存在2級管理塊B2中時,2級指定操作完成,此後,2級管理塊B2可被用於儲存管理數據。
當1級管理塊B1不再具有用於儲存位置數據的空區域時,塊指定單元110可以將記憶體塊B1~Bi中的任何一個空記憶體塊指定為新的1級管理塊。
當發生突然斷電時,恢復單元120可以基於儲存在1級管理塊B1中的位置數據來確定當前的2級管理塊B2,並且對1級管理塊B1和2級管理塊B2執行恢復操作。具體地,在發生突然斷電之後的啟動操作中,恢復單元120可以根據當前的2級管理塊B2的狀態,選擇性地對1級管理塊B1和2級管理塊B2執行恢復操作。當前的2級管理塊B2的狀態可以表示上述2級指定操作的進程。也就是說,可以從儲存在當前的2級管理塊B2中的開始數據和完整性檢查數據來估計當發生突然斷電時,在上述2級指定操作中塊指定單元110正在執行的進程。因此,可以從中檢測到不穩定的數據,並且可以選擇性地對不穩定的數據執行恢復操作。結果,根據本實施例,恢復單元120可以透過跳過不必要的恢復操作來抑制記憶體的損耗並快速完成啟動操作。恢復單元120的具體操作方法將在後文中描述。
根據控制器100的控制,非揮發性記憶體裝置200可以儲存從控制器100傳輸的數據,讀出儲存的數據,並且將讀出的數據傳輸到控制器100。
非揮發性記憶體裝置200可以包括多個記憶體塊B1~Bi。記憶體塊可以是非揮發性記憶體裝置200執行擦除操作的單位。換句話說,非揮發性記憶體裝置200可以透過擦除操作同時擦除被儲存在特定記憶體塊中的數據。
非揮發性記憶體裝置200可以包括快閃記憶體,諸如NAND快閃記憶體或NOR快閃記憶體、鐵電隨機存取記憶體(FeRAM)、相變隨機存取記憶體(PCRAM)、磁阻隨機存取記憶體(MRAM)、電阻式隨機存取記憶體(ReRAM)等。
雖然在圖1中示出,數據儲存裝置10包括一個非揮發性記憶體裝置200,但是應該注意,本發明不限於此,並且根據本發明的各種實施例,數據儲存裝置10可以包括兩個或更多個非揮發性記憶體裝置。當數據儲存裝置10包括兩個或更多個非揮發性記憶體裝置時,1級管理塊和2級管理塊可以被設置在不同的非揮發性記憶體裝置中。
圖2是有助於說明非揮發性記憶體裝置200的記憶體塊B1的結構的示圖。圖1所示的記憶體塊B2~Bi可以以與記憶體塊B1相同的方式配置。
參照圖2,記憶體塊B1可以包括分別對應於字元線WL1~WLk的多個區域R1~Rk。當選擇對應的字元線時,可以存取區域R1~Rk。即,當選擇對應的字元線時,可以在區域R1~Rk中執行寫入操作和讀取操作。區域R1~Rk中的每一個可以包括被耦接到對應的字元線的多個記憶體單元。當對應的字元線被選擇時,包括在單個區域中的記憶體單元可以被同時存取。
區域R1~Rk可以用於根據預定的寫入序列來儲存數據。例如,寫入序列可以是從區域R1到區域Rk的序列。
圖3是描述圖1的塊指定單元110執行2級指定操作的方法的示圖。圖3示出1級管理塊B1、先前指定的2級管理塊B21和重新指定的2級管理塊B22。
參照圖3,當包括在當前的2級管理塊B21中的全部2級區域R11~R1k被使用時,即在當前的2級管理塊B21不再具有用於儲存管理數據的空的2級區域時,塊指定單元110可以指定新的2級管理塊B22。
在步驟S11,當指定新的2級管理塊B22時,塊指定單元110可以將開始數據MD1儲存在新的2級管理塊B22的2級區域R21中。在新的2級管理塊B22中所包括的2級區域R21~R2k中,2級區域R21可以在寫入序列中優先排序(即,第一順序)。開始數據MD1可以是被首先儲存在2級管理塊B22中的管理數據。雖然開始數據MD1的大小未被限制,但是為了便於說明,在下面的描述中假設開始數據MD1的大小對應於單個2級區域。
在步驟S12,塊指定單元110可以將2級管理塊B22的位置A_B22儲存在1級管理塊B1中所包括的1級區域R1~Rk中的1級區域R2中。2級管理塊B22的位置A_B22可在當前的2級管理塊B21的位置A_B21之後被儲存在1級管理塊B1中。雖然諸如2級管理塊B22的位置A_B22的位置數據的大小未被限制,但是為了便於說明,在下面的描述中假設將被重新儲存的位置數據的大小對應於單個1級區域。
在步驟S13,塊指定單元110可以將完整性檢查數據CHECK儲存在2級管理塊B22的2級區域R22中。根據寫入序列,其中儲存了完整性檢查數據CHECK的2級區域R22可以緊接在其中儲存有開始數據MD1的2級區域R21之後。例如,完整性檢查數據CHECK可以包括虛擬數據。雖然完整性檢查數據CHECK的大小未被限制,但是為了便於說明,在下面的描述中假定完整性檢查數據CHECK的大小對應於單個2級區域。塊指定單元110可以透過儲存完整性檢查數據CHECK來完成2級指定操作。2級管理塊B22可以用於儲存管理數據,直到其不再包括用於儲存管理數據的空的2級區域。
圖4A和圖4B是描述圖1的恢復單元120根據當前的2級管理塊B21的狀態執行恢復操作的方法的示圖。圖4A和圖4B描述了在當前的2級管理塊B21不再具有用於儲存管理數據的空的2級區域時的恢復操作。
參照圖4A,首先,當前的2級管理塊B21可以基於最後儲存在1級管理塊B1中的位置(在下文中,被稱為最後位置)A_B21來確定。恢復單元120可以檢查當前的2級管理塊B21的狀態,並確定當前的2級管理塊B21不具有用於儲存管理數據的空的2級區域。也就是說,即使在突然斷電時指定了新的2級管理塊B22,恢復單元120也可以基於1級管理塊B1中的最後位置A_B21來檢查2級管理塊B21的狀態。
圖4A示出在突然斷電時,新的2級管理塊B22已經被指定並且開始數據MD1正被儲存在新的2級管理塊B22的2級區域R21中的情況。
另外,圖4A示出在突然斷電時,開始數據MD1被儲存在2級區域R21中,而新的2級管理塊B22的位置尚未儲存在1級管理塊B1中的情況。
而且,圖4A示出在突然斷電時,開始數據MD1被儲存在2級區域R21中並且新的2級管理塊B22的位置正被儲存在1級管理塊B1的1級區域R2中的情況。在這種情況下,當前的2級管理塊B21的位置A_B21可以被確定為最後位置,並且新的2級管理塊B22的位置可以是1級管理塊B1的1級區域R2中的不穩定數據。因此,應採取適當的措施,使1級區域R2不再被使用。
因此,參照圖4B,恢復單元120可以透過在1級管理塊B1中,對根據寫入序列緊接在其中儲存有最後位置A_B21的1級區域R1之後的1級區域R2執行虛擬寫入操作來執行恢復操作。換句話說,恢復單元120可透過將虛擬數據DUMMY儲存在可能處於不穩定狀態的1級區域R2中來處理1級區域R2,使得1級區域R2不再被使用。同時,塊指定單元110可以透過指定新的2級管理塊取代2級管理塊B22來執行2級指定操作。
圖5A和圖5B是描述圖1的恢復單元120根據當前的2級管理塊B22的狀態執行恢復操作的方法的示圖。圖5A和圖5B描述了在當前的2級管理塊B22僅保留開始數據MD1時的恢復操作。
參照圖5A,如上所述,恢復單元120可以基於儲存在1級管理塊B1中的最後位置A_B22來檢測當前的2級管理塊B22。恢復單元120可檢查當前的2級管理塊B22的狀態,並確定2級管理塊B22僅保留開始數據MD1。2級管理塊B22是否僅保留開始數據MD1可以透過識別從2級管理塊B22讀取的數據來確定。
圖5A示出在突然斷電時,開始數據MD1被儲存在新的2級管理塊B22中,2級管理塊B22的位置A_B22被儲存在1級管理塊B1的1級區域R2中,並且完整性檢查數據未被儲存在緊接在開始數據MD1之後的2級區域R22中的情況。
另外,圖5A示出了在突然斷電時,新的2級管理塊B22的位置A_B22被儲存在1級管理塊B1的1級區域R2中的情況。在這種情況下,即使位置A_B22被充分儲存以被識別為最後位置,但由於位置A_B22在突然斷電時正被儲存,因此儲存在1級區域R2中的最後位置A_B22可能處於不穩定狀態。
因此,參照圖5B,恢復單元120可以透過在1級管理塊B1中,對根據寫入序列緊接在其中儲存有最後位置A_B22的1級區域R2之後的1級區域R3執行最後位置A_B22的複製操作來執行恢復操作。即,恢復單元120可以再次將最後位置A_B22穩定地儲存在1級區域R3中。
同時,塊指定單元110可以將由於突然斷電而未被儲存在2級管理塊B22中的完整性檢查數據CHECK儲存在緊接在開始數據MD1之後的2級區域R22中。儘管由於突然斷電,2級區域R22可能也不穩定,但是這種情況不會引起問題,因為完整性檢查數據CHECK由虛擬數據配置。
圖6A和圖6B是描述圖1的恢復單元120根據當前的2級管理塊B22的狀態執行恢復操作的方法的示圖。圖6A和圖6B描述了在當前的2級管理塊B22僅保留開始數據MD1和完整性檢查數據CHECK時的恢復操作。
參照圖6A,如上所述,恢復單元120可以基於儲存在1級管理塊B1中的最後位置A_B22來確定當前的2級管理塊B22。恢復單元120可以檢查當前的2級管理塊B22的狀態,並且確定2級管理塊B22僅保留開始數據MD1和完整性檢查數據CHECK。2級管理塊B22是否僅保留開始數據MD1和完整性檢查數據CHECK可以透過識別從2級管理塊B22讀取的數據來確定。
圖6A示出了在突然斷電時,開始數據MD1被儲存在新的2級管理塊B22中,2級管理塊B22的位置A_B22被儲存在1級管理塊B1的1級區域R2中,以及完整性檢查數據CHECK被儲存在2級管理塊B22中的情況。也就是說,在突然斷電時,對2級管理塊B22的2級指定操作被完成,並且在這種情況下,不穩定數據可能不存在於1級管理塊B1和2級管理塊B22中。
因此,參照6B,恢復單元120可以跳過對1級管理塊B1的恢復操作。
圖7A和圖7B是描述圖1的恢復單元120根據當前的2級管理塊B22的狀態執行恢復操作的方法的示圖。圖7A和圖7B描述了在當前的2級管理塊B22保留開始數據MD1和完整性檢查數據CHECK並且具有至少一個用於儲存管理數據的空的2級區域時的恢復操作。
參照圖7A,如上所述,恢復單元120可以基於儲存在1級管理塊B1中的最後位置A_B22來確定當前的2級管理塊B22。恢復單元120可以檢查當前的2級管理塊B22的狀態,並且確定2級管理塊B22不僅包括開始數據MD1和完整性檢查數據CHECK,而且還包括隨後儲存的管理數據MD2。此外,恢復單元120可以確定2級管理塊B22具有至少一個用於儲存管理數據的空的2級區域。
圖7A示出在突然斷電時,對2級管理塊B22的2級指定操作被完成的情況。在這種情況下,不穩定的數據可能不存在於1級管理塊B1和2級管理塊B22中。
因此,參照圖7B,恢復單元120可以跳過對1級管理塊B1的恢復操作。
根據實施例,當在突然斷電時管理數據MD2正被儲存在2級管理塊B22的2級區域R23中時,恢復單元120可以對2級管理塊B22執行恢復操作。在這種情況下,2級區域R23和緊接其後的2級區域R24可能變得不穩定,因此恢復單元120可以透過在2級管理塊B22中,對根據寫入序列緊接在2級區域R23之後的2級區域R24執行虛擬寫入操作來防止2級區域R24被使用,其中最後管理數據MD2正被儲存在2級區域R23中。另外,恢復單元120可以透過在2級管理塊B22中,對根據寫入序列緊接在2級區域R24之後的2級區域R25執行管理數據MD2的複製操作,來再次穩定地儲存可能不穩定的管理數據MD2。
圖8是描述圖1的塊指定單元110執行2級指定操作的方法的流程圖。
參照圖8,在步驟S110,塊指定單元110可以確定是否需要新的2級管理塊。也就是說,在當前的2級管理塊不再具有用於儲存管理數據的空的2級區域時,塊指定單元110可以確定需要新的2級管理塊。當不需要新的2級管理塊時,可以結束該進程。當需要新的2級管理塊時,該進程可以進行到步驟S120。
在步驟S120,當塊指定單元110確定需要新的2級管理塊時,塊指定單元110可以指定新的2級管理塊B2,並將開始數據MD1儲存在新的2級管理塊B2中。開始數據MD1可以是首先被儲存在2級管理塊B2中的管理數據。
在步驟S130,塊指定單元110可以將新的2級管理塊B2的位置儲存在1級管理塊B1中。新的2級管理塊B2的位置可以緊接當前的2級管理塊的位置被儲存在1級管理塊B1中。
在步驟S140,塊指定單元110可以將完整性檢查數據儲存在新的2級管理塊B2中。透過儲存完整性檢查數據,塊指定單元110可以完成2級指定操作。
圖9是描述圖1的恢復單元120執行恢復操作的方法的流程圖。
參照圖9,在步驟S210,恢復單元120可以確定在通電之前是否已經發生突然斷電。在沒有發生突然斷電的情況下,該進程可以結束。在已經發生突然斷電的情況下,該進程可以進行到步驟S220。
在步驟S220,如果恢復單元120確定已經發生突然斷電,則恢復單元120可以基於儲存在1級管理塊B1中的最後位置來確定當前的2級管理塊B2。
在步驟S230,恢復單元120可以確定當前的2級管理塊B2是否不具有用於儲存管理數據的空的2級區域。在當前的2級管理塊B2具有用於儲存管理數據的空的2級區域(步驟S230中為「否」)時,進程可以進行到步驟S250。在當前的2級管理塊B2不具有用於儲存管理數據的空的2級區域(步驟S230中為「是」)時,進程可以進行到步驟S240。
在步驟S240,恢復單元120可以對1級管理塊B1執行虛擬寫入操作。具體地,恢復單元120可以在1級管理塊B1中,對根據寫入序列緊接在其中儲存有最後位置的1級區域之後的1級區域執行虛擬寫入操作。之後,恢復操作可以結束。
在步驟S250,恢復單元120可以確定當前的2級管理塊B2是否僅保留開始數據。在當前的2級管理塊B2不僅保留開始數據時,即,在當前的2級管理塊B2保留開始數據和完整性檢查數據時,進程可以進行到S270。在當前的2級管理塊B2僅保留開始數據時,進程可以進行到步驟S260。
在步驟S260,恢復單元120可以對1級管理塊B1執行複製操作。具體地,恢復單元120可以在1級管理塊B1中,對根據寫入序列緊接在其中儲存有最後位置的1級區域之後的1級區域執行最後位置的複製操作。之後,恢復操作可以結束。
在步驟S270,恢復單元120可以對2級管理塊B2執行虛擬寫入操作和複製操作。具體地,恢復單元120可以在2級管理塊B2中,對緊接在其中儲存有最後管理數據的2級區域之後的2級區域執行虛擬寫入操作。然後,恢復單元120可以對緊接在執行了虛擬寫入操作的2級區域之後的2級區域執行最後位置的複製操作。同時,恢復單元120可以跳過對1級管理塊B1的恢復操作。換句話說,由於2級指定操作在突然斷電時被完成,所以恢復單元120可以跳過對1級管理塊B1的恢復操作。之後,恢復操作可以結束。
圖10是示出應用了根據實施例的數據儲存裝置10的數據處理系統2000的示例的方塊圖。
數據處理系統2000可以包括電腦、膝上型電腦、小筆電、智慧型手機、數位電視、數位相機、導航器等。數據處理系統2000可以包括主處理器2100、主記憶體裝置2200、數據儲存裝置2300和輸入/輸出裝置2400。數據處理系統2000的內部單元可以透過系統匯流排2500交換數據、控制信號等。
主處理器2100可以控制數據處理系統2000的一般操作。主處理器2100可以是中央處理單元,例如微處理器。主處理器2100可以執行主記憶體裝置2200上的諸如作業系統、應用程式、裝置驅動程式等的軟體。
主記憶體裝置2200可以儲存待被主處理器2100使用的程式和編程數據。主記憶體裝置2200可以臨時儲存將被傳輸到數據儲存裝置2300和輸入/輸出裝置2400的數據。
數據儲存裝置2300可以包括控制器2310和儲存媒介2320。數據儲存裝置2300可以與圖1的數據儲存裝置10大體相似地配置和操作。
輸入/輸出裝置2400可以包括鍵盤、掃描器、觸控式螢幕、螢幕監視器、印表機、滑鼠等,其能夠與使用者交換數據,諸如從使用者接收用於控制數據處理系統2000的命令或將處理結果提供給使用者。
根據實施例,數據處理系統2000可以透過諸如區域網路(LAN)、廣域網路(WAN)、無線網路等的網路2600與至少一個伺服器2700通訊。數據處理系統2000可以包括存取網路2600的網路介面(未示出)。
儘管以上已經描述了本發明的各種示例性實施例,但是本領域技術人員將會理解,所描述的那些示例性實施例僅僅是示例。因此,本文描述的數據儲存裝置及其操作方法不應限於所描述的實施例。對於本發明所屬領域的技術人員而言顯而易見的是,在不脫離如所附申請專利範圍所限定的本發明的實質和範圍的情況下,可以進行各種其他改變和修改。
10‧‧‧數據儲存裝置
100‧‧‧控制器
110‧‧‧塊指定單元
120‧‧‧恢復單元
200‧‧‧非揮發性記憶體裝置
2000‧‧‧數據處理系統
2100‧‧‧主處理器
2200‧‧‧主記憶體裝置
2300‧‧‧數據儲存裝置
2310‧‧‧控制器
2320‧‧‧儲存媒介
2400‧‧‧輸入/輸出裝置
2500‧‧‧系統匯流排
2600‧‧‧存取網路
2700‧‧‧伺服器
A_B21‧‧‧位置
A_B22‧‧‧位置
B1~Bi‧‧‧記憶體塊
B1‧‧‧1級管理塊
B2‧‧‧2級管理塊
B21‧‧‧2級管理塊
B22‧‧‧2級管理塊
CHECK‧‧‧完整性檢查數據
DUMMY‧‧‧虛擬數據
MD1‧‧‧開始數據
MD2‧‧‧管理數據
R1~Rk‧‧‧區域
R11~R1k‧‧‧2級區域
R21~R2k‧‧‧2級區域
S11‧‧‧步驟
S12‧‧‧步驟
S13‧‧‧步驟
S110‧‧‧步驟
S120‧‧‧步驟
S130‧‧‧步驟
S140‧‧‧步驟
S210‧‧‧步驟
S220‧‧‧步驟
S230‧‧‧步驟
S240‧‧‧步驟
S250‧‧‧步驟
S260‧‧‧步驟
S270‧‧‧步驟
WL1~WLk‧‧‧字元線
透過參考附圖描述本發明的各種實施例,本發明的上述和其它特徵和優點對於本發明所屬領域的技術人員將變得更加顯而易見,其中: 圖1是示出根據本發明的實施例的數據儲存裝置的示例的方塊圖。 圖2是描述非揮發性記憶體裝置的記憶體塊的結構的示圖。 圖3是描述圖1的塊指定單元執行2級指定操作的方法的示圖。 圖4A和圖4B是描述圖1的恢復單元根據當前的2級管理塊的狀態執行恢復操作的方法的示圖。 圖5A和圖5B是描述圖1的恢復單元根據當前的2級管理塊的狀態執行恢復操作的方法的示圖。 圖6A和圖6B是描述圖1的恢復單元根據當前的2級管理塊的狀態執行恢復操作的方法的示圖。 圖7A和圖7B是描述圖1的恢復單元根據當前的2級管理塊的狀態執行恢復操作的方法的示圖。 圖8是描述圖1的塊指定單元執行2級指定操作的方法的流程圖。 圖9是描述圖1的恢復單元執行恢復操作的方法的流程圖。 圖10是示出應用了根據本發明的實施例的數據儲存裝置的數據處理系統的示例的方塊圖。

Claims (17)

  1. 一種數據儲存裝置,包括: 非揮發性記憶體裝置,包括多個記憶體塊,每個記憶體塊包括多個區域;以及 控制器,適於控制所述非揮發性記憶體裝置, 所述控制器包括: 塊指定單元,其適於透過將開始數據儲存在所述記憶體塊中的2級管理塊中、將所述2級管理塊的位置儲存在所述記憶體塊中的1級管理塊中並將完整性檢查數據儲存在所述2級管理塊中來執行2級指定操作;以及 恢復單元,其適於在發生突然斷電的情況下,根據與儲存在所述1級管理塊中的最後位置相對應的當前的2級管理塊的狀態來對所述1級管理塊執行恢復操作。
  2. 如請求項1所述的數據儲存裝置, 其中,在所述當前的2級管理塊不包括空的2級區域時,所述恢復單元對所述1級管理塊中所包括的1級區域中的第一1級區域執行虛擬寫入操作,並且 其中在所述1級區域中,所述第一1級區域根據寫入序列緊接在其中儲存有所述最後位置的第二1級區域之後。
  3. 如請求項2所述的數據儲存裝置,其中,在執行所述虛擬寫入操作之後,所述塊指定單元透過執行所述2級指定操作來指定新的2級管理塊。
  4. 如請求項1所述的數據儲存裝置, 其中在所述當前的2級管理塊僅保留開始數據時,所述恢復單元對所述1級管理塊中所包括的1級區域中的第一1級區域執行所述最後位置的複製操作,並且 其中在所述1級區域中,所述第一1級區域根據寫入序列緊接在其中儲存有所述最後位置的第二1級區域之後。
  5. 如請求項4所述的數據儲存裝置,其中,所述塊指定單元在執行所述複製操作之後將所述完整性檢查數據儲存在所述當前的2級管理塊中。
  6. 如請求項1所述的數據儲存裝置,其中,當所述當前的2級管理塊保留所述開始數據和所述完整性檢查數據並且具有至少一個空的2級區域時,所述恢復單元跳過所述恢復操作。
  7. 如請求項6所述的數據儲存裝置, 其中所述恢復單元對所述當前的2級管理塊中所包括的當前的2級區域中的第一2級區域執行虛擬寫入操作,並且對所述當前的2級區域中的第二2級區域執行被儲存在所述2級管理塊中的最後管理數據的複製操作, 其中所述第一2級區域根據寫入序列緊接在其中儲存有所述最後管理數據的第三2級區域之後,並且 其中所述第二2級區域根據所述寫入序列緊接在所述第一2級區域之後。
  8. 如請求項1所述的數據儲存裝置,其中,當所述當前的2級管理塊不具有空的2級區域時,所述塊指定單元透過執行所述2級指定操作來指定2級管理塊。
  9. 一種用於操作數據儲存裝置的方法,包括: 透過將開始數據儲存在包括多個2級區域的2級管理塊中、將所述2級管理塊的位置儲存在包括多個1級區域的1級管理塊中並將完整性檢查數據儲存在所述2級管理塊中來執行2級指定操作;並且 在發生突然斷電的情況下,根據與被儲存在所述1級管理塊中的最後位置相對應的當前的2級管理塊的狀態,對所述1級管理塊執行恢復操作。
  10. 如請求項9所述的方法, 其中執行所述恢復操作包括: 在所述當前的2級管理塊不具有空的2級區域時,對所述1級區域中的第一1級區域執行虛擬寫入操作,並且 其中在所述1級區域中,所述第一1級區域根據寫入序列緊接在其中儲存有所述最後位置的第二1級區域之後。
  11. 如請求項10所述的方法,進一步包括: 在執行所述虛擬寫入操作之後透過執行所述2級指定操作來指定新的2級管理塊。
  12. 如請求項9所述的方法, 其中執行所述恢復操作包括: 在所述當前的2級管理塊僅保留開始數據時,對所述1級區域中的第一1級區域執行所述最後位置的複製操作,並且 其中在所述1級區域中,所述第一1級區域根據寫入序列緊接在其中儲存有所述最後位置的第二1級區域之後。
  13. 如請求項12所述的方法,進一步包括: 在執行所述複製操作之後將所述完整性檢查數據儲存在所述當前的2級管理塊中。
  14. 如請求項9所述的方法,其中執行所述恢復操作包括: 在所述當前的2級管理塊保留所述開始數據和所述完整性檢查數據並且具有至少一個空的2級區域時,跳過所述恢復操作。
  15. 如請求項14所述的方法, 其中執行所述恢復操作包括: 對所述當前的2級管理塊中所包括的當前的2級區域中的第一2級區域執行虛擬寫入操作;以及 對所述當前的2級區域中的第二2級區域執行被儲存在所述2級管理塊中的最後管理數據的複製操作, 其中所述第一2級區域根據寫入序列緊接在其中儲存有所述最後管理數據的第三2級區域之後,並且 其中所述第二2級區域根據所述寫入序列緊接在所述第一2級區域之後。
  16. 如請求項9所述的方法,其中,執行所述2級指定操作包括: 在所述當前的2級管理塊不具有空的2級區域時指定2級管理塊。
  17. 一種控制器,包括: 塊指定單元,適於指定非揮發性記憶體裝置中用於儲存管理數據的第一記憶體塊,並且控制所述非揮發性記憶體裝置將第一數據和第二數據依序地儲存在所述第一記憶體塊中並將所述第一記憶體塊的位置資訊儲存在所述非揮發性記憶體裝置的第二記憶體塊中;以及 恢復單元,適於在突然斷電之後,根據所述第一記憶體塊的狀態,控制所述非揮發性記憶體裝置對所述第二記憶體塊執行恢復操作。
TW106143984A 2017-05-19 2017-12-14 數據儲存裝置及其控制器與操作方法 TWI816650B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2017-0062029 2017-05-19
KR1020170062029A KR20180126921A (ko) 2017-05-19 2017-05-19 데이터 저장 장치 및 그것의 동작 방법
??10-2017-0062029 2017-05-19

Publications (2)

Publication Number Publication Date
TW201901451A true TW201901451A (zh) 2019-01-01
TWI816650B TWI816650B (zh) 2023-10-01

Family

ID=64272405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106143984A TWI816650B (zh) 2017-05-19 2017-12-14 數據儲存裝置及其控制器與操作方法

Country Status (4)

Country Link
US (1) US10649840B2 (zh)
KR (1) KR20180126921A (zh)
CN (1) CN108958643B (zh)
TW (1) TWI816650B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008059B (zh) * 2019-02-20 2021-05-11 深圳市汇顶科技股份有限公司 非易失性存储介质的数据更新方法、装置及存储介质
KR20200113047A (ko) * 2019-03-20 2020-10-06 삼성전자주식회사 오픈 채널 스토리지 장치의 동작 방법
TWI745695B (zh) * 2019-05-22 2021-11-11 慧榮科技股份有限公司 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
KR20210104278A (ko) * 2020-02-17 2021-08-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210149521A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 시스템 및 이의 동작 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184736A1 (en) * 2005-02-17 2006-08-17 Benhase Michael T Apparatus, system, and method for storing modified data
KR100890546B1 (ko) * 2007-04-30 2009-03-27 슈어소프트테크주식회사 메모리 오류 검출 방법
KR101027687B1 (ko) * 2009-09-17 2011-04-12 주식회사 하이닉스반도체 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
KR20130059007A (ko) * 2011-11-28 2013-06-05 삼성전자주식회사 불휘발성 메모리 및 그것을 포함하는 메모리 장치
JP2013250603A (ja) * 2012-05-30 2013-12-12 Sony Corp メモリ管理装置および方法、並びにプログラム
TWI510903B (zh) * 2012-11-19 2015-12-01 Wistron Corp 電腦系統及資料回復方法
US9329931B2 (en) * 2013-07-24 2016-05-03 Seagate Technology Llc Solid state drive emergency pre-boot application providing expanded data recovery function
US9558080B2 (en) * 2013-10-31 2017-01-31 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory
KR20150082010A (ko) 2014-01-07 2015-07-15 삼성전자주식회사 불휘발성 메모리 파일 시스템에서의 마이크로 저널링 방법
KR102289001B1 (ko) * 2014-06-09 2021-08-13 삼성전자주식회사 솔리드 스테이드 드라이브 및 그것의 동작 방법
US10067823B2 (en) * 2014-12-04 2018-09-04 Western Digital Technologies, Inc. Systems and methods for adaptive error corrective code mechanisms
US9558839B2 (en) * 2015-03-09 2017-01-31 Toshiba Corporation Power fail saving modes in solid state drive with MLC memory
KR102291806B1 (ko) * 2015-04-20 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
US10649840B2 (en) 2020-05-12
TWI816650B (zh) 2023-10-01
US20180336088A1 (en) 2018-11-22
CN108958643B (zh) 2021-05-25
CN108958643A (zh) 2018-12-07
KR20180126921A (ko) 2018-11-28

Similar Documents

Publication Publication Date Title
TWI816650B (zh) 數據儲存裝置及其控制器與操作方法
US10664355B2 (en) Data storage device performing recovery operation after sudden power-off and operating method thereof
US10157127B2 (en) Data storage device and method including selecting a number of victim memory regions for garbage collection based on erase counts and the number of candidate memory regions
TWI703436B (zh) 資料儲存裝置及其操作方法
US9792046B2 (en) Storage module and method for processing an abort command
US10083114B2 (en) Data storage device and operating method thereof
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
US10346052B2 (en) Memory system with priority processing and operating method thereof
TW201915754A (zh) 資料儲存裝置及其操作方法
KR20140007990A (ko) 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
US10191790B2 (en) Data storage device and error recovery method thereof
CN107958690B (zh) 数据存储装置及其操作方法
US20140219041A1 (en) Storage device and data processing method thereof
US20180276136A1 (en) Data storage device and operating method thereof
US10324622B2 (en) Data storage device and operating method thereof
US10467018B2 (en) System and method for booting a host device from a mobile device
US10248503B2 (en) Data storage device and operating method thereof
KR20170139730A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN108417232B (zh) 数据存储装置及其操作方法
US20180081796A1 (en) Data Storage Device and Data Writing Method Thereof
US20140372829A1 (en) Risk protection storage device and risk protection method thereof
US20180225199A1 (en) Data storage device and operating method thereof
EP3961451B1 (en) Storage device
CN109582218B (zh) 存储器系统及其操作方法
TW201842508A (zh) 非揮發性記憶體裝置、包括其的記憶體系統及操作方法