CN113377282A - 数据存储装置与数据处理方法 - Google Patents

数据存储装置与数据处理方法 Download PDF

Info

Publication number
CN113377282A
CN113377282A CN202010875927.5A CN202010875927A CN113377282A CN 113377282 A CN113377282 A CN 113377282A CN 202010875927 A CN202010875927 A CN 202010875927A CN 113377282 A CN113377282 A CN 113377282A
Authority
CN
China
Prior art keywords
memory
memory block
data
block
data stored
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202010875927.5A
Other languages
English (en)
Inventor
杨子逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN113377282A publication Critical patent/CN113377282A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • 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
    • 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/061Improving I/O performance
    • 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/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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
    • 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/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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

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

数据存储装置与数据处理方法
技术领域
本发明有关于适用于一数据存储装置之一种数据处理方法,可有效解决因字线短路造成数据错误的问题。
背景技术
随着数据存储装置的科技在近几年快速地成长,许多数据存储装置,如符合安全数字(Secure Digital,缩写为SD)/多媒体卡(Multi Media Card,缩写为MMC)规格、复合式闪存(Compact flash,缩写为CF)规格、记忆条(Memory Stick,缩写为MS)规格与极数字(Extreme Digital,缩写为XD)规格的存储卡、固态硬盘、嵌入式多媒体存储卡(embeddedMulti Media Card,缩写为eMMC)以及通用闪存存储(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据存储装置上,有效率的存取控制也变成一个重要的议题。
于立体NAND型闪存(3D NAND-type flash)的应用中,三层单元(Triple-LevelCell,缩写为TLC)的存储器区块可被使用作为缓存器(buffer),用以自主机装置接收并暂存数据。然而,字线短路(word line short)的问题可能会发生于TLC存储器区块的写入操作。当字线短路发生时,储存于空间上相邻的字线所对应的存储单元的电压会相互影响,因而产生电压的偏移,导致比特数据产生错误,进而形成错误比特(error bit)。一旦错误比特被产生了,存储器控制器便需要针对损坏数据做额外处理,因此降低了存储器装置的存取效率。
有鉴于此,需要一种适用于数据存储装置之数据处理方法,用以解决因字线短路所造成数据错误的问题。
发明内容
如上所述,于立体NAND型闪存的应用中,可直接使用TLC存储器区块作为缓存器,用以自主机装置接收并暂存数据。然而,于TLC存储器区块的写入操作时可能会发生字线短路的问题。当字线短路发生时,储存于空间上相邻的字线所对应的存储单元的电压会产生电压的偏移,导致比特数据产生错误,进而形成错误比特(error bit)。一旦错误比特被产生了,存储器控制器便需要针对损坏数据做额外处理,因此降低了存储器装置的存取效率。
本发明的一目的在于解决因字线短路造成数据错误的问题。本发明藉由利用额外配置的多个个存储器区块作为缓存器所对应之备份存储器区块,使得当缓存器的数据发生错误时,便可利用备份存储器区块所储存之备用数据进行修复。相较于传统仅使用TLC存储器区块作为缓存器的设计,一旦产生错误比特,存储器控制器便需要针对损坏数据做额外处理,导致存储器装置的存取效率大幅降低。藉由本发明所提出之数据处理方法,可有效避免存储器装置的存取效率因数据修复的执行而降低的情况。
本发明公开了一种数据存储装置,包括一存储器装置与一存储器控制器。存储器装置包括多个存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置。存储器控制器配置一第一存储器区块作为用以自一主机装置接收数据之一缓存器,并且对应地配置多个第二存储器区块,第一存储器区块为一三层单元存储器区块,第二存储器区块为多个单层单元存储器区块。存储器控制器使用第一存储器区块接收数据,并且对应地将相同之数据储存于第一存储器区块所对应之第二存储器区块作为备份数据。当第一存储器区块之一可用空间小于或等于一既定数量时,存储器控制器检查第一存储器区块所储存之数据是否发生错误,并且当第一存储器区块所储存之数据发生错误时,存储器控制器进一步配置一第三存储器区块,并且将第二存储器区块所储存之备份数据搬移至第三存储器区块。
本发明公开了一种数据数据处理方法,适用于一数据存储装置,数据存储装置包括一存储器装置以及一存储器控制器,存储器装置包括多个存储器区块,存储器控制器耦接存储器装置,用以存取存储器装置,该方法由存储器控制器所执行并包括:配置一第一存储器区块作为用以自一主机装置接收数据之一缓存器;配置多个第二存储器区块作为第一存储器区块所对应之备份存储器区块,其中第一存储器区块为一三层单元存储器区块,第二存储器区块为多个单层单元存储器区块;使用第一存储器区块接收数据,并且对应地将相同之数据储存于第一存储器区块所对应之第二存储器区块作为备份数据;当第一存储器区块之一可用空间小于或等于一既定数量时,检查第一存储器区块所储存之数据是否发生错误;当检查出第一存储器区块所储存之数据发生错误时,配置一第三存储器区块;以及将第二存储器区块所储存之备份数据搬移至第三存储器区块。
相较于传统仅使用TLC存储器区块作为缓存器的设计,藉由本发明所提出之数据处理方法,可有效避免存储器装置的存取效率因数据修复的执行而降低的情况。此外,相较于传统仅使用SLC存储器区块作为缓存器的设计,于本发明之实作中,当缓存器的数据未发生错误,可省去读取SLC存储器区块的时间。
附图说明
图1显示根据本发明之一实施例所述的数据存储装置的示意图。
图2显示根据本发明之一实施例所述的数据处理方法之范例流程图。
图3显示根据本发明之一实施例所述的第一映射表格范例。
图4显示根据本发明之另一实施例所述的数据处理方法之范例流程图。
图5显示根据本发明之又另一实施例所述的数据处理方法之范例流程图。
其中,附图标记说明如下:
100 数据存储装置;
110 存储器控制器;
112 微处理器;
112C 程序代码;
112M 只读存储器;
114 控制逻辑;
116 缓冲存储器;
118 接口逻辑;
120 存储器装置;
130 主机装置;
132 编码器;
134 译码器;
LBA 逻辑区块地址;
Page 0、Page 1、Page(n-1)、Page(n)、Page(n+1)、Page(2n-1)、Page(2n)、Page(2n+1)、Page(3n-1) 物理资料页;
SLC_Block 第二既定存储器区块;
Table_1 第一映射表格;
TLC_Block 第一既定存储器区块。
具体实施方式
在下文中,描述了许多具体细节以提供对本发明实施例的透彻理解。然而,本领域技术人员仍将理解如何在缺少一个或多个具体细节或依赖于其他方法、组件或材料的情况下实施本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的主要概念。
在整个说明书中对「一个实施例」、「一实施例」、「一个范例」或「一范例」的引用意味着结合该实施例或范例所描述的特定特征、结构或特性包括于本发明之多个实施例的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语「在一个实施例中」、「在一实施例中」、「在一个范例中」或「在一范例中」不一定都指到相同的实施例或范例。此外,特定特征、结构或特性可以在一个或多个实施例或范例中以任何合适的组合和/或子组合进行结合。
此外,为让本发明之目的、特征和优点能更明显易懂,下文特举出本发明之具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明之精神而非用以限定本发明之保护范围,应理解下列实施例可经由软件、硬件、韧体、或上述任意组合来实现。
图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沟通。在一实施例中,存储器控制器110透过接口逻辑118并使用一标准通讯协议与主机装置130沟通。举例而言,上述之标准通讯协议包含(但不限于):通用串行总线(Universal Serial Bus,缩写为USB)标准、安全数字(Secure Digital,缩写为SD)接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、复合式闪存(Compact flash,缩写为CF)接口标准、多媒体卡(Multimedia Card,缩写为MMC)接口标准、嵌入式多媒体卡(Embedded Multimedia Card,缩写为eMMC)接口标准、通用闪存(Universal Flash Storage,缩写为UFS)接口标准、高技术组态(Advanced TechnologyAttachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral Component Interconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel Advanced Technology Attachment,缩写为PATA)标准。
在一实施例中,缓冲存储器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所包含之多个个存储器区块中可包括单层单元(Single-Level Cell,缩写为SLC)存储器区块、多层单元(Multiple-Level Cell,缩写为MLC)存储器区块以及/或是三层单元(Triple-Level Cell,缩写为TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个比特数据,MLC存储器区块的每个存储器单元中储存两个比特数据,TLC存储器区块的每个存储器单元中储存三个比特数据。
一般而言,存储器装置120可大体被区分为三个区域,包含系统区域、数据区域以及备用区域。存储器控制器110可自备用区域选择一存储器区块作为高速缓存,或称缓存器(buffer),用以接收并暂存数据。待缓存器被写满时,存储器控制器110再将作为缓存器之存储器区块更新成数据区域的数据区块。举例而言,若用以接收并暂存数据的缓存器为MLC或TLC存储器区块,待缓存器被写满时,可直接被更新为数据区域的数据区块。若用以接收并暂存数据的缓存器为SLC存储器区块,待一定数量之缓存器被写满时,可透过垃圾回收程序,将多个缓存器存储器区块所储存之数据搬移至MLC或TLC存储器区块(目标存储器区块),并藉此操作将目标存储器区块更新为数据区域的数据区块。
根据本发明之一实施例,存储器装置120为一立体NAND型闪存(3D NAND-typeflash),且存储器控制器110可配置一第一存储器区块作为用以自主机装置130接收数据之一缓存器,其中第一存储器区块为一三层单元(TLC)存储器区块。亦即,当主机装置130欲写入数据时,存储器控制器110先将接收到的数据暂存于第一存储器区块。待第一存储器区块被写满时,存储器控制器110便可直接将第一存储器区块更新成数据区域的数据区块。然而,如上述,字线短路(word line short)的问题可能会发生于TLC存储器区块的写入操作。为避免存储器装置的存取效率因发生字线短路而降低,存储器控制器110可于配置上述第一存储器区块时,对应地配置多个第二存储器区块,用以作为第一存储器区块之备份(backup)存储器区块。根据本发明之一实施例,第二存储器区块为单层单元(SLC)存储器区块,且该等第二存储器区块所储存之数据内容与第一存储器区块相同,用以于第一存储器区块所储存之数据产生错误时,以第二存储器区块所储存之数据直接取代第一存储器区块所储存之数据。如此一来,存储器控制器110无需针对损坏的数据做额外的修复处理,有效避免存储器装置的存取效率因数据修复的执行而降低。
图2显示根据本发明之一实施例所述的数据处理方法之范例流程图。本发明之数据处理方法由存储器控制器110执行,并且包括:
步骤S202:配置第一存储器区块作为用以自主机装置130接收数据之缓存器。
步骤S204:配置多个第二存储器区块作为第一存储器区块所对应之备份存储器区块。其中根据本发明之一实施例,第一存储器区块为一TLC存储器区块,第二存储器区块为多个SLC存储器区块。
步骤S206:使用第一存储器区块接收数据,并且对应地将相同的数据储存于第二存储器区块作为备份数据。需注意的是,于本发明之实施例中,并不限定存储器控制器110将数据先写入第一存储器区块或先写入第二存储器区块。此外,由于现今技术中已发展出多种将数据写入TLC存储器区块及将数据写入SLC存储器区块的不同方式,且写入方式亦可根据系统的效能需求做弹性地设计,因此,本发明并不限于使用任何一种特定的数据写入方式。
步骤S208:判断第一存储器区块之一可用空间是否小于或等于一既定数量。由于第一存储器区块之容量为已知的,存储器控制器110可根据写入数据量判断第一存储器区块剩余之可用空间是否已小于或等于一既定数量。若第一存储器区块剩余之可用空间仍大于既定数量,则返回步骤S206。若第一存储器区块剩余之可用空间已小于或等于既定数量,则执行步骤S210。
根据本发明之一实施例,于步骤S208中所使用的既定数量可被设定为第一存储器区块之容量乘上一比值之结果。举例而言,既定数量可设定为第一存储器区块之容量之10%、第一存储器区块之容量之5%、第一存储器区块之容量之3%等。根据本发明之另一实施例,于步骤S208中所使用的既定数量可被设定为0。即,于步骤S208中可判断第一存储器区块是否已被写满。若第一存储器区块尚未被写满,则返回步骤S206。若第一存储器区块已被写满,则执行步骤S210。
步骤S210:检查第一存储器区块所储存之数据是否发生错误。根据本发明之一实施例,存储器控制器110可逐页检查第一存储器区块所储存之数据内容,计算错误比特的数量,并且根据错误比特的数量判断第一存储器区块所储存之数据是否发生错误。若第一存储器区块之一数据页所储存之数据所包含的错误比特数量并未大于译码器134可根据错误更正码修复的一临界值时,可利用译码器134进行错误更正操作。若第一存储器区块之任一数据页所储存之数据所包含的错误比特数量大于译码器134可根据错误更正码修复的临界值时(即,当任一数据页被判断为错误更正码无法更正(Uncorrectable Error CorrectionCode,缩写为UECC)的数据页时),存储器控制器110便可判断第一存储器区块因字线短路而发生数据错误。若存储器控制器110判断第一存储器区块所储存之数据发生错误,执行步骤S212。若存储器控制器110判断第一存储器区块所储存之数据并未发生错误,执行步骤S216。
值得注意的是,判断第一存储器区块所储存之数据是否发生错误的条件并不限于上述之任一资料页被判断为UECC资料页。于实施本发明时,判断第一存储器区块所储存之数据是否发生错误的条件可根据系统需求或系统之软件/硬件的错误修复能力而对应地调整。
步骤S212:配置第三存储器区块。其中根据本发明之一实施例,所述第三存储器区块为一TLC存储器区块,存储器控制器110可如上述自备用区域选择一存储器区块作为第三存储器区块。
步骤S214:将第一存储器区块所对应之第二存储器区块所储存之备份数据搬移至第三存储器区块。根据本发明之一实施例,当存储器控制器110将第二存储器区块所储存之备份数据搬移至第三存储器区块时,存储器控制器复制第二存储器区块所储存之备份数据,并且将复制之备份数据储存于第三存储器区块。举例而言,存储器控制器110可读取第二存储器区块所储存之三页的备份数据,并将之写入第三存储器区块的其中一页。
步骤S216:将第一/第三存储器区块更新为数据区域的数据区块。于此步骤中,若存储器控制器110判断第一存储器区块所储存之数据并未发生错误,则存储器控制器110可直接将第一存储器区块更新为数据区域的数据区块。若存储器控制器110判断第一存储器区块所储存之数据发生错误,因而配置第三存储器区块并将第二存储器区块所储存之备份数据搬移至第三存储器区块,则于第二存储器区块所储存之所有数据被搬移至第三存储器区块后,存储器控制器110可直接将第三存储器区块更新为数据区域的数据区块。
根据本发明之一实施例,当存储器控制器110于步骤S210中判断第一存储器区块所储存之数据发生错误时,由于第二存储器区块所储存之备份数据为第一存储器区块所储存之数据之备份,因此存储器控制器110可直接舍弃第一存储器区块所储存之所有数据。
根据本发明之一实施例,所述的舍弃为存储器控制器110不再认定第一存储器区块所储存之数据为有效数据。举例而言,存储器控制器110可做些许对应之注记或参数设定,或者存储器控制器110亦可不做任何设定,仅是将第一存储器区块放置暂不使用,待尔后存储器控制器110需要配置新的存储器区块时,再挑选出第一存储器区块并抹除第一存储器区块所储存之数据,用以释放出可用的存储器空间。
类似地,当存储器控制器110于步骤S210中判断第一存储器区块所储存之数据并未发生错误时,由于存储器控制器110可直接将第一存储器区块更新为数据区域的数据区块,因此存储器控制器110可直接舍弃第二存储器区块所储存之所有数据。
同样地,所述的舍弃为存储器控制器110不再认定第二存储器区块所储存之数据为有效数据。举例而言,存储器控制器110可做些许对应之注记或参数设定,或者存储器控制器110亦可不做任何设定,仅是将第二存储器区块放置暂不使用,待尔后存储器控制器110需要配置新的存储器区块时,再抹除第二存储器区块所储存之数据,用以释放出可用的存储器空间。
根据本发明之一实施例,在存储器控制器110使用第一存储器区块作为缓存器自主机装置130接收数据时,存储器控制器110会同时于缓冲存储器116维护至少一第一映射表格。更具体的说,于利用第一存储器区块接收数据时,存储器控制器110会对应地于第一映射表格中纪录多个逻辑地址。根据本发明之一实施例,第一映射表格为一闪存对主机(Flash to Host,缩写为F2H)(亦可称为物理对逻辑(Physical to Logical,缩写为P2L)映射表格。第一映射表格可包含多个字段(field),各字段用以纪录写入第一存储器区块之各物理数据页之数据指向(对应于)哪个逻辑数据页,例如,第一映射表格中可纪录对应之逻辑页面之逻辑区块地址(Logical Block Address,缩写为LBA),或是以其他形式记录逻辑数据页之逻辑地址。
值得注意的是,由于第二存储器区块被配置作为第一存储器区块所对应之备份存储器区块,第二存储器区块所储存之备份数据理论上与第一存储器区块所储存之数据相同,并且具有一对一的对应关系。因此,存储器控制器110可仅于缓冲存储器116为第一存储器区块与第二存储器区块之其中一者维护一份F2H(或称P2L)映射表格以记录其映射信息。至于另一者未被记录于第一映射表格之映射信息,则可直接藉由被记录的映射信息推导出来。
图3显示根据本发明之一实施例所述的第一映射表格范例,藉由此范例可显示出根据第一存储器区块之映射信息推导出第二存储器区块之映射信息之方法。如图所示,第一映射表格Table_1纪录了存储器区块编号为W之第一存储器区块TLC_Block的映射信息。根据本发明之一实施例,第一映射表格Table_1可以一阵列(array)形式记录多个逻辑区块地址LBA,其中第一映射表格之一字段对应于第一存储器区块TLC_Block之一物理数据页。即,第一映射表格Table_1之阵列索引值与第一存储器区块TLC_Block之物理数据页编号可有着一对一的对应关系。举例而言,假设第一映射表格Table_1所使用的起始阵列索引值为0,则第一映射表格的第一个字段Table_1[0](即,第一映射表格Table_1所储存之第1笔记录)所纪录的逻辑地址为第一存储器区块TLC_Block的第1个物理数据页之数据所指向的逻辑数据页,第二个字段Table_1[1](即,第一映射表格Table_1所储存之第2笔记录)所纪录的逻辑地址为第一存储器区块TLC_Block的第2个物理数据页之数据所指向的逻辑数据页,并依此类推。
而当存储器控制器110对应地配置第二存储器区块作为第一存储器区块之备份存储器区块时,已知对应于第一存储器区块TLC_Block#W的多个第二存储器区块的编号为X、Y与Z(即图中所示之SLC_Block#X、SLC_Block#Y与SLC_Block#Z),因此,存储器控制器110可根据第一存储器区块TLC_Block#W与物理资料页编号(例如,图中所示之物理数据页编号Page 0、Page 1…Page(n-1)、Page(n)、Page(n+1)…Page(2n-1)、Page(2n)、Page(2n+1)…Page(3n-1))以及第一映射表格Table_1所纪录的内容轻易地推导出第二存储器区块SLC_Block#X、SLC_Block#Y与SLC_Block#Z之各物理数据页的映射信息。
然而,值得注意的是,本发明并不限于仅于缓冲存储器116维护一份F2H(或称P2L)映射表格。于本发明之其他实施例中,存储器控制器110亦可于缓冲存储器116中同时为第一存储器区块与第二存储器区块维护对应之F2H(或称P2L)映射表格。
根据本发明之不同实施例,存储器控制器110可于前景或背景执行数据搬移的操作(例如,图2之步骤S212~S214)。根据本发明之第一实施例,当数据处理流程被设计为于前景执行数据搬移的操作时,存储器控制器110可于检查出第一存储器区块所储存之数据发生错误时,直接将第二存储器区块所储存之备份数据搬移至第三存储器区块。根据本发明之第二实施例,当数据处理流程被设计为于背景执行数据搬移的操作时,存储器控制器110可先保留第二存储器区块所储存之备份数据,等待存储器装置闲置时(例如,于侦测到主机装置130超过一既定时间都未发出存取指令存取存储器装置120时),再于背景藉由垃圾回收操作将第二存储器区块(SLC存储器区块)所储存之备份数据搬移至第三存储器区块(TLC存储器区块)。
图4显示根据本发明之另一实施例所述的数据处理方法之范例流程图,此流程图用以说明于前景执行数据搬移的操作。根据本发明之第一实施例,流程开始于存储器控制器110自主机装置130接收到写入请求,并且包括:
步骤S402:自主机装置接收欲写入之数据(以下称为主机数据)。
步骤S404:将主机数据写入第一存储器区块与第二存储器区块。如上所述,第一存储器区块为一TLC存储器区块,第二存储器区块为多个SLC存储器区块。
步骤S406:将主机数据之逻辑位置对应地纪录于缓冲存储器116内所储存之第一映射表格。如上所述,第一映射表格为F2H(或称P2L)映射表格。
步骤S408:判断第一存储器区块之一可用空间是否小于或等于一既定数量。由于第一存储器区块之容量为已知的,存储器控制器110可根据写入数据量判断第一存储器区块剩余之可用空间是否已小于或等于一既定数量。若第一存储器区块剩余之可用空间仍大于既定数量,则流程结束,待再次自主机装置130接收到写入请求时重新开始。若第一存储器区块剩余之可用空间已小于或等于既定数量,则执行步骤S410。
如上述,根据本发明之一实施例,于步骤S408中所使用的既定数量可被设定为第一存储器区块之容量乘上一比值之结果。举例而言,既定数量可设定为第一存储器区块之容量之10%、第一存储器区块之容量之5%、第一存储器区块之容量之3%等。根据本发明之另一实施例,于步骤S408中所使用的既定数量可被设定为0。即,于步骤S408中可判断第一存储器区块是否已被写满。若第一存储器区块尚未被写满,则流程结束,待再次自主机装置130接收到写入请求时重新开始。若第一存储器区块已被写满,则执行步骤S410。
步骤S410:读取第一存储器区块所储存之数据并执行数据验证。
步骤S412:判断字线短路是否发生于第一存储器区块(例如,判断第一存储器区块所储存之数据是否发生错误)。若是,则执行步骤S414。若否,则执行步骤S418。
步骤S414:舍弃第一存储器区块。如上所述,所述的舍弃为存储器控制器110不再认定第一存储器区块所储存之数据为有效数据。举例而言,存储器控制器110可做些许对应之注记或参数设定,或者存储器控制器110亦可不做任何设定,仅是将第一存储器区块放置暂不使用,待尔后存储器控制器110需要配置新的存储器区块时,再挑选出第一存储器区块并抹除第一存储器区块所储存之数据,用以释放出可用的存储器空间。于本发明之实施例中,由于当存储器控制器110决定舍弃第一存储器区块时,于第一映射表格中所纪录之第一存储器区块之映射信息最终并不会被更新至存储器装置120,因此,存储器装置120内并不会记录第一存储器区块内所储存之数据的链接。当数据的链接(映射信息)并未被建立或记录于存储器装置120时,或该连结已为无效之链接时,该数据便成为无效的数据。
步骤S416:配置另一新的SLC存储器区块(例如,第三存储器区块),并且将第二存储器区块所储存之备份数据搬移至第三存储器区块。
步骤S418:根据第一存储器区块或第三存储器区块之存储器区块编号、物理数据页编号及第一映射表格所纪录之多个逻辑区块地址LBA将第一映射表格的内容更新至存储器装置120所储存之一第二映射表格。于此步骤中,若第一存储器区块并未发生字线短路,则存储器控制器110根据第一存储器区块之存储器区块编号、物理数据页编号及第一映射表格所纪录之多个逻辑区块地址LBA将第一映射表格的内容更新至存储器装置120所储存之一第二映射表格。若第一存储器区块发生字线短路,则存储器控制器110根据第三存储器区块之存储器区块编号、物理数据页编号及第一映射表格所纪录之多个逻辑区块地址LBA将第一映射表格的内容更新至存储器装置120所储存之一第二映射表格。此外,存储器控制器110亦可于第一映射表格所纪录之映射信息被更新至第二映射表格之前或之后,将第一存储器区块或第三存储器区块直接更新为数据区域的数据区块。
根据本发明之一实施例,第二映射表格被储存于存储器装置120之系统区域。第二映射表格为一主机对闪存(Host to Flash,缩写为H2F)(亦可称为物理对逻辑(Logical toPhysical,缩写为L2P)映射表格。第二映射表格所记录的多个笔数据对应于多个逻辑数据页。一般而言,第二映射表格所包含的字段数量与主机系统中所包含的逻辑数据页数量相关,其中第二映射表格的一个字段对应于主机系统的一个逻辑数据页,用以纪录此逻辑数据页之数据指向(实际上被储存于)存储器装置120的哪个存储器区块以及哪个物理数据页。根据本发明之一实施例,所述的主机系统可以是包含主机装置130与数据存储装置100之一系统,亦可为进一步包含耦接至主机装置130之一或多个周边装置之一系统。
根据本发明之一实施例,第二映射表格可以一阵列形式记录各逻辑数据页所对应之一存储器区块编号以及一数据页编号,用以纪录各逻辑数据页之数据指向(被储存于)哪个存储器区块的哪个物理数据页。如上述,第二映射表格之一字段对应于多个逻辑数据页之一者。因此,第二映射表格之阵列索引值与逻辑数据页有着一对一的对应关系。举例而言,假设第二映射表格Table_2所使用的起始阵列索引值为0,则第二映射表格之第一个字段Table_2[0](即,第二映射表格Table_2所储存之第1笔记录)所纪录的存储器区块编号以及数据页编号指示出主机系统中第1个逻辑数据页之数据被存放的物理存储器区块及数据页位置,第二映射表格之第二个字段Table_2[1](即,第二映射表格Table_2所储存之第2笔记录)所纪录的存储器区块编号以及数据页编号指示出主机系统中第2个逻辑数据页之数据被存放的物理存储器区块及数据页位置,并依此类推。
由于目前主机装置130所欲储存之数据已被搬移至第三存储器区块,因此,存储器控制器110于步骤S418可直接以第三存储器区块之存储器区块编号取代第一存储器区块之存储器区块编号,依据第一映射表格所纪录之多个逻辑区块地址LBA将第三存储器区块之存储器区块编号与物理数据页编号纪录于第二映射表格所对应之字段。
步骤S420:由于第一存储器区块或第三存储器区块之映射信息均已被写入(更新至)存储器装置120的第二映射表格(即,H2F或L2P映射表格)内(例如,步骤S418),因此,存储器控制器110可舍弃第二存储器区块,并且重新配置新的TLC存储器区块作为缓存器,以及对应地配置新的SLC存储器区块作为备份存储器区块。
于本发明之第一实施例中,当判断第一存储器区块所储存之数据发生错误时,存储器控制器110于根据第一映射表格之内容更新第二映射表格之内容前,便会舍弃第一存储器区块(步骤S414)并且将第二存储器区块所储存之备份数据搬移至第三存储器区块(步骤S416)。由于当存储器控制器110决定舍弃第一存储器区块时,于第一映射表格中所纪录之第一存储器区块之映射信息并不会在步骤S418中被更新至存储器装置120,因此,存储器装置120内并不会记录第一存储器区块内所储存之数据的链接。当数据的链接(映射信息)并未被建立或记录于存储器装置120时,或该连结已为无效之链接时,该数据便成为无效的数据。
图5显示根据本发明之又另一实施例所述的数据处理方法之范例流程图,此流程图用以说明于背景执行资料搬移的操作。根据本发明之第二实施例,流程开始于存储器控制器110自主机装置130接收到写入请求,并且包括:
步骤S502:自主机装置接收欲写入之数据(以下称为主机数据)。
步骤S504:将数据写入第一存储器区块与第二存储器区块。如上所述,第一存储器区块为一TLC存储器区块,第二存储器区块为多个SLC存储器区块。
步骤S506:将主机数据之逻辑位置对应地纪录于缓冲存储器116内所储存之第一映射表格。如上所述,第一映射表格为F2H(或称P2L)映射表格。
步骤S508:判断第一存储器区块之一可用空间是否小于或等于一既定数量。由于第一存储器区块之容量为已知的,存储器控制器110可根据写入数据量判断第一存储器区块剩余之可用空间是否已小于或等于一既定数量。若第一存储器区块剩余之可用空间仍大于既定数量,则流程结束,待再次自主机装置130接收到写入请求时重新开始。若第一存储器区块剩余之可用空间已小于或等于既定数量,则执行步骤S510。
如上述,根据本发明之一实施例,于步骤S508中所使用的既定数量可被设定为第一存储器区块之容量乘上一比值之结果。举例而言,既定数量可设定为第一存储器区块之容量之10%、第一存储器区块之容量之5%、第一存储器区块之容量之3%等。根据本发明之另一实施例,于步骤S508中所使用的既定数量可被设定为0。即,于步骤S508中可判断第一存储器区块是否已被写满。若第一存储器区块尚未被写满,则流程结束,待再次自主机装置130接收到写入请求时重新开始。若第一存储器区块已被写满,则执行步骤S510。
步骤S510:读取第一存储器区块所储存之数据并执行数据验证。
步骤S512:判断字线短路是否发生于第一存储器区块(例如,判断第一存储器区块所储存之数据是否发生错误)。若是,则执行步骤S514。若否,则执行步骤S518。
步骤S514:舍弃第一存储器区块。如上所述,所述的舍弃为存储器控制器110不再认定第一存储器区块所储存之数据为有效数据。举例而言,存储器控制器110可做些许对应之注记或参数设定,或者存储器控制器110亦可不做任何设定,仅是将第一存储器区块放置暂不使用,待尔后存储器控制器110需要配置新的存储器区块时,再挑选出第一存储器区块并抹除第一存储器区块所储存之数据,用以释放出可用的存储器空间。于本发明之实施例中,由于当存储器控制器110决定舍弃第一存储器区块时,于第一映射表格中所纪录之第一存储器区块之映射信息最终并不会被更新至存储器装置120,因此,存储器装置120内并不会记录第一存储器区块内所储存之数据的链接。当数据的链接(映射信息)并未被建立或记录于存储器装置120时,或该连结已为无效之链接时,该数据便成为无效的数据。
步骤S516:根据第二存储器区块之存储器区块编号、物理数据页编号及第一映射表格所纪录之多个逻辑区块地址LBA将第一映射表格的内容更新至存储器装置120所储存之第二映射表格。
如上述,根据本发明之一实施例,第二映射表格被储存于存储器装置120之系统区域。第二映射表格为一H2F(或称L2P)映射表格。于本发明之一实施例中,若存储器控制器110仅于缓冲存储器116为第一存储器区块维护其所对应之F2H(或称P2L)映射表格(即上述之第一映射表格),则存储器控制器110于步骤S516中可利用如图3所示第一存储器区块与第二存储器区块之间的一对一的对应关系,根据第一映射表格所纪录之内容将未被记录之第二存储器区块的映射信息推导出来,并将之纪录于第二映射表格所对应之字段。若存储器控制器110已于缓冲存储器116为第二存储器区块维护其所对应之F2H(或称P2L)映射表格(即上述之第一映射表格),则存储器控制器110于步骤S516中可直接根据第一映射表格所纪录之多个逻辑区块地址LBA将第二存储器区块之存储器区块编号与物理数据页编号纪录于第二映射表格所对应之字段。
步骤S518:因第一存储器区块并未发生字线短路,存储器控制器110无须舍弃第一存储器区块,因此可直接根据第一存储器区块之存储器区块编号、物理数据页编号及第一映射表格所纪录之多个逻辑区块地址LBA将第一映射表格的内容更新至存储器装置120所储存之一第二映射表格。此外,存储器控制器110亦可于第一映射表格所纪录之映射信息被更新至第二映射表格之前或之后,将第一存储器区块直接更新为数据区域的数据区块。
步骤S520:由于第一存储器区块或第二存储器区块之映射信息均已被写入(更新至)存储器装置120的第二映射表格(即,H2F或L2P映射表格)内(例如,步骤S516或S518),因此,存储器控制器110可重新配置新的TLC存储器区块作为缓存器,以及对应地配置新的SLC存储器区块作为备份存储器区块。
于本发明之第二实施例中,当判断第一存储器区块所储存之数据发生错误时,存储器控制器110于根据第一映射表格之内容更新第二映射表格之内容前,便会舍弃第一存储器区块(步骤S514)。由于当存储器控制器110决定舍弃第一存储器区块时,于第一映射表格中所纪录之第一存储器区块之映射信息并不会在步骤S516或S518中被更新至存储器装置120,因此,存储器装置120内并不会记录第一存储器区块内所储存之数据的链接。当数据的链接(映射信息)并未被建立或记录于存储器装置120时,或该连结已为无效之链接时,该数据便成为无效的数据。
此外,于本发明之第二实施例中,在根据第一映射表格之内容更新第二映射表格之内容之前,存储器控制器110并不会将第二存储器区块所储存之备份数据搬移至另一存储器区块(例如,第三存储器区块),而是在根据第一映射表格之内容更新第二映射表格之内容(步骤S516或S518)之后,透过尔后启动之一垃圾回收程序于背景将第二存储器区块所储存之该备份数据搬移至另一存储器区块(例如,第三存储器区块)。如此一来,可进一步加速数据写入的操作。
综上所述,于本发明之实施例中,额外配置了多个个存储器区块作为缓存器所对应之备份存储器区块,备份存储器区块以选择SLC存储器区块为较佳。由于SLC存储器区块的写入速度快,且数据错误率低,可确保备用数据的正确性。当缓存器的数据发生错误,便可利用SLC存储器区块所储存之备用数据进行修复。当缓存器的数据未发生错误,则可直接舍弃SLC存储器区块所储存之备用数据。于传统仅使用TLC存储器区块作为缓存器的设计,一旦产生错误比特,存储器控制器便需要针对损坏数据做额外处理,导致存储器装置的存取效率大幅降低。因此,相较于传统设计,藉由本发明所提出之数据处理方法,可有效避免存储器装置的存取效率因数据修复的执行而降低的情况。
此外,于本发明之实施例中,写入主机数据的操作包含了将主机数据写入TLC存储器区块(缓存器)以及写入SLC存储器区块(作为备份数据),而当缓存器的数据未发生错误时,可直接舍弃SLC存储器区块所储存之备用数据。然而,于传统仅使用SLC存储器区块作为缓存器的设计,为了提升数据储存量,最终仍必须执行的垃圾回收操作,因此,其写入主机数据的操作包含了将主机数据写入SLC存储器区块(缓存器)、以及执行的垃圾回收操作所包含之自读取SLC存储器区块读取数据,并且将数据写入TLC存储器区块的操作。因此,相较于传统仅使用SLC存储器区块作为缓存器的设计,于本发明之实作中,当缓存器的数据未发生错误,可省去读取SLC存储器区块的时间。
权利要求书中用以修饰组件的“第一”、“第二”、“第三”等序数词的使用本身未暗示任何优先权、优先次序、各组件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同组件。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种数据存储装置,包括:
一存储器装置,包括多个存储器区块;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器配置一第一存储器区块作为用以自一主机装置接收数据之一缓存器,并且对应地配置多个第二存储器区块,该第一存储器区块为一三层单元存储器区块,该等第二存储器区块为多个单层单元存储器区块,
该存储器控制器使用该第一存储器区块接收数据,并且对应地将相同之该数据储存于该第一存储器区块所对应之该等第二存储器区块作为该数据之备份数据,
当该第一存储器区块之一可用空间小于或等于一既定数量时,该存储器控制器检查该第一存储器区块所储存之数据是否发生错误,并且当该第一存储器区块所储存之数据发生错误时,该存储器控制器进一步配置一第三存储器区块,并且将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块。
2.如权利要求1所述的数据存储装置,其特征在于,当该第一存储器区块所储存之数据发生错误时,该存储器控制器舍弃该第一存储器区块所储存之所有数据。
3.如权利要求1所述的数据存储装置,其特征在于,该第三存储器区块为一三层单元存储器区块,当该存储器控制器将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块时,该存储器控制器复制该等第二存储器区块所储存之该备份数据,并且将复制之该备份数据储存于该第三存储器区块。
4.如权利要求3所述的数据存储装置,其特征在于,于该等第二存储器区块所储存之该备份数据被搬移至该第三存储器区块后,该存储器控制器舍弃该等第二存储器区块所储存之所有数据。
5.如权利要求1所述的数据存储装置,其特征在于,当该存储器控制器判断该第一存储器区块所储存之数据并未发生错误时,该存储器控制器舍弃该第一存储器区块所对应之该等第二存储器区块所储存之所有数据。
6.如权利要求1所述的数据存储装置,其特征在于,该存储器控制器包括一缓冲存储器,当该第一存储器区块所储存之数据发生错误时,该存储器控制器于根据该缓冲存储器所储存之一目前的闪存对主机映射表格之内容更新该存储器装置所储存之一主机对闪存映射表格之内容前,将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块。
7.如权利要求1所述的数据存储装置,其特征在于,该存储器控制器包括一缓冲存储器,当该第一存储器区块所储存之数据发生错误时,该存储器控制器于根据该缓冲存储器所储存之一目前的闪存对主机映射表格之内容更新该存储器装置所储存之一主机对闪存映射表格之内容后,透过一垃圾回收程序于背景将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块。
8.如权利要求1所述的数据存储装置,其特征在于,该存储器装置为一立体NAND型闪存。
9.一种数据处理方法,适用于一数据存储装置,该数据存储装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法由该存储器控制器所执行并包括:
配置一第一存储器区块作为用以自一主机装置接收数据之一缓存器;
配置多个第二存储器区块作为该第一存储器区块所对应之备份存储器区块,其中该第一存储器区块为一三层单元存储器区块,该等第二存储器区块为多个单层单元存储器区块;
使用该第一存储器区块接收数据,并且对应地将相同之该数据储存于该第一存储器区块所对应之该等第二存储器区块作为该数据之备份数据;
当该第一存储器区块之一可用空间小于或等于一既定数量时,检查该第一存储器区块所储存之数据是否发生错误;
当检查出该第一存储器区块所储存之数据发生错误时,配置一第三存储器区块;以及
将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块。
10.如权利要求9所述的数据处理方法,其特征在于:
当检查出该第一存储器区块所储存之数据发生错误时,舍弃该第一存储器区块所储存之所有数据。
11.如权利要求9所述的数据处理方法,其特征在于,将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块之步骤包括:
复制该等第二存储器区块所储存之该备份数据;以及
将复制之该备份数据储存于该第三存储器区块,其中该第三存储器区块为一三层单元存储器区块。
12.如权利要求9所述的数据处理方法,其特征在于,更包括:
于该等第二存储器区块所储存之该备份数据被搬移至该第三存储器区块后,舍弃该等第二存储器区块所储存之所有数据。
13.如权利要求9所述的数据处理方法,其特征在于,更包括:
当未检查出该第一存储器区块所储存之数据发生错误时,舍弃该第一存储器区块所对应之该等第二存储器区块所储存之所有数据。
14.如权利要求9所述的数据处理方法,其特征在于,更包括:
根据一缓冲存储器所储存之一目前的闪存对主机映射表格之内容更新该存储器装置所储存之一主机对闪存映射表格之内容,
其中配置该第三存储器区块以及将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块之该等步骤于该存储器控制器根据该缓冲存储器所储存之该目前的闪存对主机映射表格之内容更新该存储器装置所储存之该主机对闪存映射表格之内容之前于前景被执行。
15.如权利要求9所述的数据处理方法,其特征在于,更包括:
根据一缓冲存储器所储存之一目前的闪存对主机映射表格之内容更新该存储器装置所储存之一主机对闪存映射表格之内容,
其中配置该第三存储器区块以及将该等第二存储器区块所储存之该备份数据搬移至该第三存储器区块之该等步骤于该存储器控制器根据该缓冲存储器所储存之该目前的闪存对主机映射表格之内容更新该存储器装置所储存之该主机对闪存映射表格之内容之后,透过一垃圾回收程序于背景被执行。
CN202010875927.5A 2020-03-09 2020-08-25 数据存储装置与数据处理方法 Pending CN113377282A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW109107586 2020-03-09
TW109107586A TWI747191B (zh) 2020-03-09 2020-03-09 資料儲存裝置與資料處理方法

Publications (1)

Publication Number Publication Date
CN113377282A true CN113377282A (zh) 2021-09-10

Family

ID=77555707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010875927.5A Pending CN113377282A (zh) 2020-03-09 2020-08-25 数据存储装置与数据处理方法

Country Status (3)

Country Link
US (1) US11662940B2 (zh)
CN (1) CN113377282A (zh)
TW (1) TWI747191B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11940887B2 (en) * 2020-12-04 2024-03-26 Innogrit Technologies Co., Ltd. Cache program with backup blocks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377132A (zh) * 2012-04-16 2013-10-30 群联电子股份有限公司 管理存储器空间的方法、存储器控制器与存储器储存装置
CN103377143A (zh) * 2012-04-27 2013-10-30 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器存储装置
CN103389941A (zh) * 2012-05-07 2013-11-13 群联电子股份有限公司 存储器格式化方法、存储器控制器及存储器存储装置
CN104166636A (zh) * 2013-05-17 2014-11-26 宇瞻科技股份有限公司 存储器储存装置及其还原方法与存储器控制器
US20150012684A1 (en) * 2013-07-02 2015-01-08 Sandisk Technologies Inc. Write Operations with Full Sequence Programming for Defect Management in Nonvolatile Memory
US20190087348A1 (en) * 2017-09-18 2019-03-21 EpoStar Electronics Corp. Data backup method, data recovery method and storage controller

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656256B2 (en) * 2010-07-07 2014-02-18 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
US9158621B2 (en) * 2011-08-29 2015-10-13 Sandisk Technologies Inc. System and method of copying data
TWI454922B (zh) * 2011-12-19 2014-10-01 Phison Electronics Corp 記憶體儲存裝置及其記憶體控制器與資料寫入方法
TWI463313B (zh) * 2012-04-17 2014-12-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US9507536B2 (en) * 2014-04-02 2016-11-29 International Business Machines Corporation Creating a stable flashcopy map (FCMAPS) for ingest
US10430328B2 (en) * 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US9514837B2 (en) * 2015-01-20 2016-12-06 Sandisk Technologies Llc Selective online burn-in with adaptive and delayed verification methods for memory
US9619321B1 (en) * 2015-10-08 2017-04-11 Seagate Technology Llc Internal copy-back with read-verify
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
KR20210001508A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377132A (zh) * 2012-04-16 2013-10-30 群联电子股份有限公司 管理存储器空间的方法、存储器控制器与存储器储存装置
CN103377143A (zh) * 2012-04-27 2013-10-30 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器存储装置
CN103389941A (zh) * 2012-05-07 2013-11-13 群联电子股份有限公司 存储器格式化方法、存储器控制器及存储器存储装置
CN104166636A (zh) * 2013-05-17 2014-11-26 宇瞻科技股份有限公司 存储器储存装置及其还原方法与存储器控制器
US20150012684A1 (en) * 2013-07-02 2015-01-08 Sandisk Technologies Inc. Write Operations with Full Sequence Programming for Defect Management in Nonvolatile Memory
US20190087348A1 (en) * 2017-09-18 2019-03-21 EpoStar Electronics Corp. Data backup method, data recovery method and storage controller

Also Published As

Publication number Publication date
US11662940B2 (en) 2023-05-30
TWI747191B (zh) 2021-11-21
TW202134878A (zh) 2021-09-16
US20210278994A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9639475B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US10303367B2 (en) Mapping table updating method without updating the first mapping information, memory control circuit unit and memory storage device
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
CN107357520B (zh) 整理指令处理方法、存储器控制电路单元及其存储装置
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
CN112860193B (zh) 整理指令处理方法、存储器控制电路单元与存储装置
CN112051971B (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN113377282A (zh) 数据存储装置与数据处理方法
US20130067141A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN110162493B (zh) 存储器管理方法及使用所述方法的储存控制器
CN110442300B (zh) 整理指令记录方法、存储器控制电路单元与存储装置
CN113721832A (zh) 数据储存装置与数据处理方法
CN106326131B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination