CN112130750B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents

数据储存装置以及非挥发式存储器控制方法 Download PDF

Info

Publication number
CN112130750B
CN112130750B CN201911234168.8A CN201911234168A CN112130750B CN 112130750 B CN112130750 B CN 112130750B CN 201911234168 A CN201911234168 A CN 201911234168A CN 112130750 B CN112130750 B CN 112130750B
Authority
CN
China
Prior art keywords
crc
cyclic redundancy
redundancy check
uncorrectable
read
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.)
Active
Application number
CN201911234168.8A
Other languages
English (en)
Other versions
CN112130750A (zh
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
Priority claimed from TW108137198A external-priority patent/TWI718709B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN112130750A publication Critical patent/CN112130750A/zh
Application granted granted Critical
Publication of CN112130750B publication Critical patent/CN112130750B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/093CRC update after modification of the information word
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/0658Controller construction arrangements
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及非挥发式存储器控制的无法校正(UNC)标示,尤其涉及数据储存装置以及非挥发式存储器控制方法。响应于一主机下达的一无法校正标示命令,以一循环冗余校验(CRC)引擎提供一特定循环冗余校验码,标示该无法校正标示命令所指示的一逻辑地址段为无法校正。后续只要判断到该特定循环冗余校验码,循环冗余校验可略去,直接判定该主机要求读取的内容已有无法校正(UNC)标示。

Description

数据储存装置以及非挥发式存储器控制方法
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器常见以一挥发式存储器高速通讯介面(NVMe)与一主机通讯。NVMe提供一无法校正标示命令WriteUNC(write uncorrectable),对指定逻辑地址进行编程,但标注其无法校正(uncorrectable,简称UNC),读取的数据不可信赖。非挥发式存储器的控制须有能力响应于NVMe如此特殊命令。
发明内容
本发明将无法校正(UNC)标示结合至循环冗余校验(CRC)。本发明以特定值的一特定(固定值)循环冗余校验码实现无法校正标示。后续只要判断到该特定循环冗余校验码,循环冗余校验可略去,直接判定该主机要求读取的内容已有无法校正标示。
根据本发明一种实施方式实现的一种数据储存装置,包括:一非挥发式存储器;以及一控制器。该控制器控制该非挥发式存储器,且包括一循环冗余校验引擎。响应于一主机下达的一无法校正标示命令,该控制器操作该循环冗余校验引擎提供一特定循环冗余校验码,标示该无法校正标示命令所指示的一逻辑地址段为无法校正。
一种实施方式中,该控制器采用一映射资讯格式进行映射资讯管理,其中是以多个逻辑地址单元为管理单位。该循环冗余校验引擎是以单一个逻辑地址单元为单位,提供该特定循环冗余校验码。该逻辑地址段的所有逻辑地址单元,都同样是以该特定循环冗余校验码标示为无法校正。
一种实施方式中,该无法校正标示命令的标示单位小于该映射资讯格式的管理单位。
一种实施方式中,对应该逻辑地址段的所有逻辑地址单元,该控制器将该特定循环冗余校验码编程至该非挥发式存储器,以元数据区储存。
一种实施方式中,响应于该主机的一读取命令,该控制器自该非挥发式存储器取得一读取数据以及一读取循环冗余校验码。该循环冗余校验引擎判定该读取循环冗余校验码为该特定循环冗余校验码时,该控制器回应该主机,其要求读取的为无法校正数据。该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、但没有通过循环冗余校验时,该控制器回传一循环冗余校验失败信息至该主机。该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、且通过循环冗余校验时,该控制器以该读取数据回传该主机。
前述控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法,包括以下步骤:响应于一主机下达的一无法校正标示命令,操作一循环冗余校验引擎提供一特定循环冗余校验码;且以该特定循环冗余校验码标示该无法校正标示命令所指示的一逻辑地址段为无法校正。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解快闪存储器一区块Blk的结构;
图2图解传统技术所使用的一种映射资讯格式200;
图3为方块图,根据本发明一种实施方式图解一数据储存装置300;
图4为空间318上关于映射资讯所使用的映射资讯格式400不包括无法校正标示位元;
图5为流程图,根据本发明一种实施方式图解无法校正标示命令(WriteUNC)的处理流程;以及
图6为流程图,根据本发明一种实施方式图解控制器304如何处理主机308的读取要求。
符号说明
200~映射资讯格式;
300~数据储存装置;
302~快闪存储器;
304~控制器;
306~暂存存储器;
308~主机;
310~系统区块池;
312~备用区块池;
314~数据区块池;
316~数据快取空间;
318~空间,动态维护映射资讯;
320~循环冗余校验引擎;
400~映射资讯格式;
A_Blk~主动区块;
S502…S506、S602…S616~步骤;
UNC~无法校正标示位元。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求收来界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,实现记忆卡(Memory Card)、通用串行总线存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为主机,操作所连结的固态硬碟,以存取其中快闪存储器。
快闪存储器有其特殊的储存特性,以下叙述的。主机(Host)端是以逻辑地址来区别数据,逻辑地址例如为逻辑区块地址(LBA),以下将以LBA为例进行说明。至于数据实际储存在快闪存储器何处,则是以映射方式管理。
快闪存储器的物理空间是划分为多个区块(Blocks)配置使用。图1图解快闪存储器一区块Blk的结构。区块Blk包括多个页面(Pages),例如,页面0…页面255。各页面包括多个区段(Sectors),例如32个区段,每一区段可储存512B长度的使用者数据。一次写入可能涉及多个区段。例如,在4KB数据管理模式下,可将8个区段视为一个数据单元,进行管理。一次写入可能涵盖8个区段(4KB)长度。16KB长度的页面可由四个数据单元(32个区段)所组成。一种实施方式是根据页编号─由低编号至高编号─循序使用一区块的储存空间。特别是,同样LBA所对应的数据更新并非覆写至旧数据的储存空间,新版本的数据须写入闲置空间(空白的区段)。旧空间的内容则标示为无效。区块可能仅零星留存有效数据。
由于数据不断地写入闲置空间,这导致闲置区块逐渐消耗。闲置区块数量不足时(如,低于阀值),垃圾回收(Garbage Collection)需求产生。数据区块留存的零星有效数据经垃圾回收程序集中到其他区块(例如:主动区块)的储存空间。徒留无效数据的数据区块则抹除(Erase)而成为闲置区块,闲置区块数量因而拉升,确保数据储存装置的正常使用。
由前述内容可知,快闪存储器的空间配置相当复杂。一种实施方式是建立逻辑-实体地址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表),记录逻辑地址,例如:逻辑区块地址(Logical Block Address,LBA),与实体地址之间的映射资讯。
图2图解一种映射资讯所采用的传统的映射资讯格式200,包括32位元(四位元组),每笔映射资讯对应4KB数据。映射资讯所载的实体地址则为此4KB数据的储存位置。映射资讯格式200中各位元规划如下:
位元[31]:无法校正标示UNC(Uncorrectable)位元,标示映射资讯所指内容不可靠,例如,当位元[31]的值由"0"变更为"1"时,此实体地址资讯所对应4KB大小的数据皆为UNC。
位元[30:29]:映射资讯模式(Pattern Mode)位元,00/01代表后续位元[28:0]标示快闪存储器的实体地址,10代表后续位元[28:0]标示暂存存储器的实体地址,11代表后续位元[28:0]为无意义的虚置(Dummy)数据。
位元[28:0]:快闪存储器或暂存存储器的实体地址,或虚置数据。
由于位元[31]的UNC标示的对象为4KB大小的数据,无法用以标示512B大小的数据,换句话说,这使用无法校正命令(例如:Write UNC命令)使用受限。小于数据管理单位(如,4KB)的UNC标示指令将无法被正确地执行或回应。
响应于这个,本发明将UNC标示结合至循环冗余校验码(CRC)。数据经过CRC编码后可产生预设大小的CRC,例如:2B大小的CRC。本发明选用特定的(固定值,不随数据变化)CRC值来实现UNC的标示。特别是,CRC编码的编码单位可由使用者予以设定,编码单位可以是512B大小的数据,可以是4KB大小的数据,也可以是其他大小的数据。不论什么数据量,本发明都可以复制此2B大小的特定CRC值对应之。因此,当UNC标示结合至CRC后,UNC标示的使用相较于映射资讯格式200中的位元[31]具有更高的灵活性。小于数据管理单位(如,4KB)的UNC标示指令也可被正确地执行或回应。
举例来说,映射资讯格式200的位元[31]由"0"变更为"1"时,可将LBA#0~LBA#7的数据一起标示为UNC,却无法单独将标示LBA#3标示为UNC。本发明提出的技术,除了有能力给予LBA#0…LBA#7的数据特定的CRC值,标注LBA#0~LBA#7全数无法校正,也可单独给予LBA#3的数据特定的CRC值,单纯标注LBA#3无法校正。之后,藉由判断CRC值是否为特定值即可轻松地判断出LBA#0~LBA#7的数据或仅有LBA#3的数据为无法校正(UNC),达到本发明的目的。
一种实施方式中,特定的CRC值较佳为一般数据经CRC编码后所不会产生的值,或是虚置数据等特定数据才能产生的值。一旦辨识出此特定的CRC值,即代表读取命令所欲读取的内容已被标示为无法校正(UNC)。此特定的CRC值较佳与循环冗余校验码失败(CRCfailed)的CRC值不同,如此一来,循环冗余校验码失败(CRC failed)得以与UNC区别。
图3为方块图,根据本发明一种实施方式图解一数据储存装置300,包括快闪存储器302、控制器304以及暂存存储器306。主机308透过控制器304操作快闪存储器302。数据储存装置300内部也可经控制器304发动快闪存储器302的最佳化操作;例如,整理快闪存储器302空间,使其发挥最大储存效能。控制器304进行运算时是以暂存存储器306暂存数据。暂存存储器306可为动态随机存取存储器(DRAM)或SRAM。
快闪存储器302包括多个区块。储存系统资讯的数据区块称为系统区块并置于系统区块池310中。取自备用区块池312的备用区块则作为主动区块A_Blk,用于编程来自主机308的数据。主动区块A_Blk不再执行数据编程后变更为数据区块,推入数据区块池314。运行一段时间后,因为数据的更新,某些数据区块可能仅留零星的有效数据。该些数据区块经由垃圾回收(Garbage Collection)程序处理后变更为备用区块并推入备用区块池312。
如图所示,控制器304是先将数据快取于暂存存储器306的数据快取空间316,再自数据快取空间316编程至主动区块A_Blk。控制器304可利用空间318来储存或更新映射资讯,再将更新后映射资讯编程至系统区块。图4为空间318上关于映射资讯所使用的映射资讯格式400不包括无法校正标示位元。映射资讯格式400完整32位元[31:0]都用于记载实体地址,甚至不包括映射资讯模式(Pattern Mode)位元。其他实施方式也可能只省略无法校正标示位元,但仍有规画映射资讯模式(Pattern Mode)位元。
图5为流程图,根据本发明一种实施方式图解UNC标示命令的处理流程。
步骤S502,控制器304接收来自主机308的UNC标示命令,其中,UNC标示命令包括目标逻辑地址(如目标逻辑区块地址,以下称目标LBA)。控制器304接收来自主机308的UNC标示命令,例如,Write UNC命令,UNC标示命令包括目标LBA,例如:LBA#3。UNC标示命令亦可包括多个目标LBA,并由起始逻辑地址LBA_S以及长度L所表示,例如:起始逻辑地址LBA_S为LBA#0,长度L为8,则多个目标LBA为LBA#0~#7。
步骤S504,控制器304操作CRC引擎320以产生CRC_S。控制器304包括CRC引擎320,控制器304将数据样板P输出至CRC引擎320以产生CRC_S,其中,数据样板P为虚置数据或特定数据,例如:全"0"或全"1",因此,CRC引擎320所产生的CRC_S为特定的CRC值。
步骤S506,控制器304将CRC_S对应至目标LBA,并将CRC_S编程至主动区块A_Blk。控制器304将数据样板P作为目标LBA所对应的数据,将CRC_S作为此数据的CRC,再将数据样板P以及CRC_S编程至主动区块A_Blk。目标LBA所对应的数据可编程至主动区块A_Blk的数据区,CRC_S可编程至主动区块A_Blk的元数据(Metadata)区。
步骤S508,控制器304更新目标LBA的映射资讯。控制器304以目标LBA在主动区块A_Blk上的实体地址来更新目标LBA的映射资讯。之后,当主机308欲读取目标LBA的数据时,控制器304依据映射资讯而从主动区块A_Blk的元数据(Metadata)区取得CRC_S,则可依据CRC_S回复此目标LBA为无法校正(UNC),达到本发明的目的。
图6为流程图,根据本发明一种实施方式图解控制器304如何处理来自主机308的读取命令。
步骤S602,控制器304接收来自主机308的读取命令,其中,读取命令包括目标LBA,例如:LBA#3。
步骤S604,控制器304根据目标LBA查询L2P映射表以取得实体地址。控制器304根据LBA#3来查询L2P映射表,可以取得储存LBA#3的数据的实体地址。
步骤S606,控制器304读取实体地址以取得目标数据D_read以及目标数据D_read的循环冗余校验码CRC_read。控制器304读取实体地址中的数据区以取得目标数据,读取实体地址中的元数据区以取得循环冗余校验码CRC_read。
步骤S608,控制器304判断循环冗余校验码CRC_read是否为CRC_S,如果是则执行步骤S610,如果否则执行步骤S612。
步骤S610,控制器304回传UNC所对应的预设讯息至主机308,其中,预设讯息例如是目标LBA尚未记录,或目标LBA已被清除等。
步骤S612,控制器304产生目标数据D_read的目标CRC。控制器304输出目标数据D_read至CRC引擎320以产生目标CRC。
步骤S614,控制器304比对目标CRC是否等于循环冗余校验码CRC_read,如果是则执行步骤S616,如果否则执行步骤S610。
步骤S616,控制器304回传目标数据D_read给主机308。由于目标CRC等于循环冗余校验码CRC_read,这表示目标数据D_read为正确,因此,控制器304回传目标数据D_read给主机308,完成读取命令的执行。
以上存储器控制器304对快闪存储器302的操作设计也可以由其他结构实现。凡是根据前述概念操作快闪存储器、使无法校正(UNC)标示得以简单注记以及辨识的技术,都属于本发明欲保护范围。本发明更可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围以由权利要求书界定为准。

Claims (10)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,控制该非挥发式存储器,且包括一循环冗余校验引擎,
其中:
响应于一主机下达的一无法校正标示命令,该控制器操作该循环冗余校验引擎提供一特定循环冗余校验码,标示该无法校正标示命令所指示的一逻辑地址段为无法校正;
该控制器采用一映射资讯格式进行映射资讯管理,其中是以多个逻辑地址单元为管理单位;
该循环冗余校验引擎是以单一个逻辑地址单元为单位,提供该特定循环冗余校验码;
该逻辑地址段的所有逻辑地址单元,都同样是以该特定循环冗余校验码标示为无法校正;且
该无法校正标示命令的标示单位小于该映射资讯格式的管理单位。
2.如权利要求1所述的数据储存装置,其特征在于,
对应该逻辑地址段的所有逻辑地址单元,该控制器将该特定循环冗余校验码编程至该非挥发式存储器,以元数据区储存。
3.如权利要求2所述的数据储存装置,其特征在于,
响应于该主机的一读取命令,该控制器自该非挥发式存储器取得一读取数据以及一读取循环冗余校验码;且
该循环冗余校验引擎判定该读取循环冗余校验码为该特定循环冗余校验码时,该控制器回应该主机,其要求读取的为无法校正数据。
4.如权利要求3所述的数据储存装置,其特征在于,
该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、但没有通过循环冗余校验时,该控制器回传一循环冗余校验失败信息至该主机。
5.如权利要求4所述的数据储存装置,其特征在于,
该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、且通过循环冗余校验时,该控制器以该读取数据回传该主机。
6.一种非挥发式存储器控制方法,包括:
响应于一主机下达的一无法校正标示命令,操作一循环冗余校验引擎提供一特定循环冗余校验码;
以该特定循环冗余校验码标示该无法校正标示命令所指示的一逻辑地址段为无法校正;
采用一映射资讯格式进行映射资讯管理,其中是以多个逻辑地址单元为管理单位;
该循环冗余校验引擎是以单一个逻辑地址单元为单位,提供该特定循环冗余校验码;
该逻辑地址段的所有逻辑地址单元,都同样是以该特定循环冗余校验码标示为无法校正;且
该无法校正标示命令的标示单位小于该映射资讯格式的管理单位。
7.如权利要求6所述的非挥发式存储器控制方法,其特征在于,还包括:
对应该逻辑地址段的所有逻辑地址单元,将该特定循环冗余校验码编程至该非挥发式存储器,以元数据区储存。
8.如权利要求7所述的非挥发式存储器控制方法,其特征在于,还包括:
响应于该主机的一读取命令,自该非挥发式存储器取得一读取数据以及一读取循环冗余校验码;且
在该循环冗余校验引擎判定该读取循环冗余校验码为该特定循环冗余校验码时,回应该主机,其要求读取的为无法校正数据。
9.如权利要求8所述的非挥发式存储器控制方法,其特征在于,还包括:
在该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、但没有通过循环冗余校验时,回传一循环冗余校验失败信息至该主机。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
在该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、且通过循环冗余校验时,以该读取数据回传该主机。
CN201911234168.8A 2019-06-25 2019-12-05 数据储存装置以及非挥发式存储器控制方法 Active CN112130750B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962866051P 2019-06-25 2019-06-25
US62/866,051 2019-06-25
TW108137198 2019-10-16
TW108137198A TWI718709B (zh) 2019-06-25 2019-10-16 資料儲存裝置以及非揮發式記憶體控制方法

Publications (2)

Publication Number Publication Date
CN112130750A CN112130750A (zh) 2020-12-25
CN112130750B true CN112130750B (zh) 2023-11-07

Family

ID=73850082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911234168.8A Active CN112130750B (zh) 2019-06-25 2019-12-05 数据储存装置以及非挥发式存储器控制方法

Country Status (2)

Country Link
US (1) US11218164B2 (zh)
CN (1) CN112130750B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI813978B (zh) * 2021-04-16 2023-09-01 群聯電子股份有限公司 快閃記憶體控制方法、快閃記憶體儲存裝置及快閃記憶體控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
CN102053796A (zh) * 2009-11-10 2011-05-11 群联电子股份有限公司 闪存储存系统、闪存控制器与数据处理方法
CN108399134A (zh) * 2017-02-06 2018-08-14 三星电子株式会社 存储装置及存储装置的操作方法
CN108572922A (zh) * 2017-03-07 2018-09-25 慧荣科技股份有限公司 数据储存装置以及其操作方法
CN109582599A (zh) * 2017-09-29 2019-04-05 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2286267A (en) 1994-02-03 1995-08-09 Ibm Energy-saving cache control system
US5696929A (en) 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US6092231A (en) 1998-06-12 2000-07-18 Qlogic Corporation Circuit and method for rapid checking of error correction codes using cyclic redundancy check
US6606682B1 (en) 2000-04-19 2003-08-12 Western Digital Technologies, Inc. Cluster-based cache memory allocation
US7058763B2 (en) 2001-05-04 2006-06-06 Lucent Technologies Inc. File system for caching web proxies
US7322002B2 (en) * 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
US20070079103A1 (en) 2005-10-05 2007-04-05 Yasuyuki Mimatsu Method for resource management in a logically partitioned storage system
CN101288056A (zh) * 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
JP2009075759A (ja) 2007-09-19 2009-04-09 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
JP5347657B2 (ja) 2009-03-31 2013-11-20 富士通株式会社 データ記憶プログラム、方法、及び情報処理装置
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8478796B2 (en) 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
US8631271B2 (en) * 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8484529B2 (en) * 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8572325B2 (en) 2010-12-07 2013-10-29 International Business Machines Corporation Dynamic adjustment of read/write ratio of a disk cache
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
WO2011127866A2 (zh) * 2011-05-27 2011-10-20 华为技术有限公司 数据处理方法、装置及系统
US8843806B2 (en) * 2012-01-19 2014-09-23 International Business Machines Corporation Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
US8904244B2 (en) * 2012-10-17 2014-12-02 Lsi Corporation Heuristic approach for faster consistency check in a redundant storage system
US9325736B2 (en) 2013-01-10 2016-04-26 Tencent Technology (Shenzhen) Company Limited Method and device for anti-virus scanning
US9715519B2 (en) 2013-03-15 2017-07-25 Sandisk Technologies Llc Managing updates to multiple sets of metadata pertaining to a memory
US9229876B2 (en) 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US9239679B2 (en) 2013-12-19 2016-01-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System for efficient caching of swap I/O and/or similar I/O pattern(s)
JP6196199B2 (ja) 2014-09-12 2017-09-13 東芝メモリ株式会社 半導体記憶装置
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9436615B2 (en) 2014-10-03 2016-09-06 Sandisk Technologies Llc Optimistic data read
US9558125B2 (en) 2014-10-27 2017-01-31 Sandisk Technologies Llc Processing of un-map commands to enhance performance and endurance of a storage device
US9870836B2 (en) 2015-03-10 2018-01-16 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
JP6414852B2 (ja) 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
US9886388B2 (en) 2016-04-22 2018-02-06 Citrix Systems, Inc. Dynamic block-level indexing for cache with overflow
US9934151B2 (en) 2016-06-28 2018-04-03 Dell Products, Lp System and method for dynamic optimization for burst and sustained performance in solid state drives
US10558519B2 (en) * 2017-01-17 2020-02-11 International Business Machines Corporation Power-reduced redundant array of independent memory (RAIM) system
TWI613652B (zh) 2017-03-27 2018-02-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10380018B2 (en) 2017-04-04 2019-08-13 Micron Technology, Inc. Garbage collection
US10642743B2 (en) 2017-06-28 2020-05-05 Arm Limited Apparatus and method of handling caching of persistent data
KR102430791B1 (ko) 2017-07-19 2022-08-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
KR102378384B1 (ko) * 2017-09-11 2022-03-24 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법
US11442813B2 (en) * 2017-10-11 2022-09-13 Hewlett-Packard Development Company, L.P. Memory devices including execution trace buffers
KR102410021B1 (ko) 2017-11-20 2022-06-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법
TWI661307B (zh) 2017-12-06 2019-06-01 慧榮科技股份有限公司 資料儲存裝置、主機裝置、以及資料寫入方法
US10789130B1 (en) * 2018-03-09 2020-09-29 Toshiba Memory Corporation Capacitor energy management for unexpected power loss in datacenter SSD devices
CN110489052B (zh) 2018-05-14 2022-11-25 慧荣科技股份有限公司 数据储存装置
CN112099985B (zh) * 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10922235B2 (en) 2019-06-26 2021-02-16 Western Digital Technologies, Inc. Method and system for address table eviction management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
CN102053796A (zh) * 2009-11-10 2011-05-11 群联电子股份有限公司 闪存储存系统、闪存控制器与数据处理方法
CN108399134A (zh) * 2017-02-06 2018-08-14 三星电子株式会社 存储装置及存储装置的操作方法
CN108572922A (zh) * 2017-03-07 2018-09-25 慧荣科技股份有限公司 数据储存装置以及其操作方法
CN109582599A (zh) * 2017-09-29 2019-04-05 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法

Also Published As

Publication number Publication date
US11218164B2 (en) 2022-01-04
US20200412379A1 (en) 2020-12-31
CN112130750A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
US9842030B2 (en) Data storage device and flash memory control method
CN112099985B (zh) 数据储存装置以及非挥发式存储器控制方法
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US10437737B2 (en) Data storage device
US8595424B2 (en) Cluster based non-volatile memory translation layer
US7752381B2 (en) Version based non-volatile memory translation layer
US20200151110A1 (en) Memory addressing
US10496334B2 (en) Solid state drive using two-level indirection architecture
CN108874300B (zh) 数据储存装置以及其操作方法
US20190188130A1 (en) Data Storage Device and Non-Volatile Memory Control Method
US20090327837A1 (en) NAND error management
TWI718709B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN109697170B (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
CN109521944B (zh) 数据储存装置以及数据储存方法
US11307979B2 (en) Data storage device and non-volatile memory control method
CN112130750B (zh) 数据储存装置以及非挥发式存储器控制方法
KR102578191B1 (ko) 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN112100087B (zh) 数据储存装置以及非挥发式存储器控制方法
US9798470B2 (en) Memory system for storing and processing translation information
TWI723581B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN111611178B (zh) 数据储存装置以及非挥发式存储器控制方法
TW202032375A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11748023B2 (en) Data storage device and non-volatile memory control method

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
GR01 Patent grant
GR01 Patent grant