CN112130750A - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN112130750A CN112130750A CN201911234168.8A CN201911234168A CN112130750A CN 112130750 A CN112130750 A CN 112130750A CN 201911234168 A CN201911234168 A CN 201911234168A CN 112130750 A CN112130750 A CN 112130750A
- Authority
- CN
- China
- Prior art keywords
- crc
- uncorrectable
- read
- volatile memory
- data
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 67
- 238000013500 data storage Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 title claims abstract description 19
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 38
- 238000007726 management method Methods 0.000 claims description 7
- 238000013523 data management Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/093—CRC update after modification of the information word
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity 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 (14)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,控制该非挥发式存储器,且包括一循环冗余校验引擎,
其中:
响应于一主机下达的一无法校正标示命令,该控制器操作该循环冗余校验引擎提供一特定循环冗余校验码,标示该无法校正标示命令所指示的一逻辑地址段为无法校正。
2.如权利要求1所述的数据储存装置,其特征在于,:
该控制器采用一映射资讯格式进行映射资讯管理,其中是以多个逻辑地址单元为管理单位;
该循环冗余校验引擎是以单一个逻辑地址单元为单位,提供该特定循环冗余校验码;且
该逻辑地址段的所有逻辑地址单元,都同样是以该特定循环冗余校验码标示为无法校正。
3.如权利要求2所述的数据储存装置,其特征在于,:
该无法校正标示命令的标示单位小于该映射资讯格式的管理单位。
4.如权利要求3所述的数据储存装置,其特征在于,:
对应该逻辑地址段的所有逻辑地址单元,该控制器将该特定循环冗余校验码编程至该非挥发式存储器,以元数据区储存。
5.如权利要求4所述的数据储存装置,其特征在于,:
响应于该主机的一读取命令,该控制器自该非挥发式存储器取得一读取数据以及一读取循环冗余校验码;且
该循环冗余校验引擎判定该读取循环冗余校验码为该特定循环冗余校验码时,该控制器回应该主机,其要求读取的为无法校正数据。
6.如权利要求5所述的数据储存装置,其特征在于,:
该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、但没有通过循环冗余校验时,该控制器回传一循环冗余校验失败信息至该主机。
7.如权利要求6所述的数据储存装置,其特征在于,:
该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、且通过循环冗余校验时,该控制器以该读取数据回传该主机。
8.一种非挥发式存储器控制方法,包括:
响应于一主机下达的一无法校正标示命令,操作一循环冗余校验引擎提供一特定循环冗余校验码;且
以该特定循环冗余校验码标示该无法校正标示命令所指示的一逻辑地址段为无法校正。
9.如权利要求8所述的非挥发式存储器控制方法,其特征在于,还包括:
采用一映射资讯格式进行映射资讯管理,其中是以多个逻辑地址单元为管理单位;
该循环冗余校验引擎是以单一个逻辑地址单元为单位,提供该特定循环冗余校验码;且
该逻辑地址段的所有逻辑地址单元,都同样是以该特定循环冗余校验码标示为无法校正。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于:
该无法校正标示命令的标示单位小于该映射资讯格式的管理单位。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
对应该逻辑地址段的所有逻辑地址单元,将该特定循环冗余校验码编程至该非挥发式存储器,以元数据区储存。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
响应于该主机的一读取命令,自该非挥发式存储器取得一读取数据以及一读取循环冗余校验码;且
在该循环冗余校验引擎判定该读取循环冗余校验码为该特定循环冗余校验码时,回应该主机,其要求读取的为无法校正数据。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
在该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、但没有通过循环冗余校验时,回传一循环冗余校验失败信息至该主机。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
在该循环冗余校验引擎确定该读取循环冗余校验码非该特定循环冗余校验码、且通过循环冗余校验时,以该读取数据回传该主机。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962866051P | 2019-06-25 | 2019-06-25 | |
US62/866,051 | 2019-06-25 | ||
TW108137198A TWI718709B (zh) | 2019-06-25 | 2019-10-16 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW108137198 | 2019-10-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130750A true CN112130750A (zh) | 2020-12-25 |
CN112130750B 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)
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 (6)
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 | 群联电子股份有限公司 | 闪存储存系统、闪存控制器与数据处理方法 |
US20180203627A1 (en) * | 2017-01-17 | 2018-07-19 | International Business Machines Corporation | Power-reduced redundant array of independent memory (raim) system |
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 (45)
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 |
JP4524309B2 (ja) * | 2006-03-13 | 2010-08-18 | パナソニック株式会社 | フラッシュメモリ用のメモリコントローラ |
JP2009075759A (ja) | 2007-09-19 | 2009-04-09 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
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 |
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 | 삼성전자주식회사 | 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법 |
WO2019074500A1 (en) * | 2017-10-11 | 2019-04-18 | Hewlett-Packard Development Company, L.P. | MEMORY DEVICES COMPRISING EXECUTION TRACING PADS |
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 |
-
2019
- 2019-12-05 CN CN201911234168.8A patent/CN112130750B/zh active Active
-
2020
- 2020-02-10 US US16/786,089 patent/US11218164B2/en active Active
Patent Citations (6)
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 | 群联电子股份有限公司 | 闪存储存系统、闪存控制器与数据处理方法 |
US20180203627A1 (en) * | 2017-01-17 | 2018-07-19 | International Business Machines Corporation | Power-reduced redundant array of independent memory (raim) system |
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 |
---|---|
US20200412379A1 (en) | 2020-12-31 |
CN112130750B (zh) | 2023-11-07 |
US11218164B2 (en) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891225B2 (en) | Host- directed sanitization of memory | |
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11314586B2 (en) | Data storage device and non-volatile memory control method | |
US20190188130A1 (en) | Data Storage Device and Non-Volatile Memory Control Method | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111610930B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN109521944B (zh) | 数据储存装置以及数据储存方法 | |
US20210216448A1 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
CN112130750B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112100087B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111611178B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI713032B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI723581B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
KR20230071005A (ko) | 스토리지 장치 |
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 |