CN112579329A - 快速处理uecc的方法及其存储设备 - Google Patents

快速处理uecc的方法及其存储设备 Download PDF

Info

Publication number
CN112579329A
CN112579329A CN201910930673.XA CN201910930673A CN112579329A CN 112579329 A CN112579329 A CN 112579329A CN 201910930673 A CN201910930673 A CN 201910930673A CN 112579329 A CN112579329 A CN 112579329A
Authority
CN
China
Prior art keywords
data
uecc
protection information
host
logical address
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
CN201910930673.XA
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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201910930673.XA priority Critical patent/CN112579329A/zh
Publication of CN112579329A publication Critical patent/CN112579329A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • 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
    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Abstract

本申请公开了一种快速处理UECC的方法及其存储设备,涉及存储技术领域,解决了读命令中因不可纠正错误,造成极大延迟的技术问题。本申请的快速处理UECC的方法,包括:收到从第一逻辑地址读数据的读命令;获取同第一逻辑地址对应的第一物理地址;从第一物理地址中读出第一数据;响应于读出的第一数据存在UECC,生成第二数据或者获取预先准备的第二数据;为第二数据分配第二物理地址,记录第一逻辑地址与第二物理地址的映射关系;向主机告知出现了UECC。

Description

快速处理UECC的方法及其存储设备
技术领域
本申请涉及存储技术,特别地,涉及快速处理UECC的方法及其存储设备。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE (Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片 105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器) 110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、 MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random AccessMemory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问 DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105 的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL 表是固态存储设备中的重要元数据。通常FTL表的条目记录了存储设备中以数据页为单位的地址映射关系。
一些存储设备的FTL由存储设备所耦合的主机提供,由主机的存储器存储FTL表,主机的CPU执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。这些情况下,存储设备所接收的读/写命令指示物理地址。
主机提供给存储设备的命令可能访问FTL表的一个或多个条目所对应的逻辑地址空间。以及控制部件可能将从接口103接收的命令改变形态(例如,根据FTL条目所对应的逻辑地址空间大小切分命令),并处理改变形态的命令。为了清楚的目的,在本文中,以存储设备接收的读/写命令访问单一 FTL条目为例来描述。
诸如NAND闪存的NVM芯片是不可靠存储介质,其中存储的数据会存在错误比特。为识别与校正错误比特,对向NVM芯片写入的数据实施ECC (错误校验码,ErrorCorrectionCode)编码,并将编码得到的校验数据同数据一同写入NVM芯片。在从NVM芯片读出数据时,对读出的数据(连同校验数据)实施ECC解码以得到正确的数据。当数据中的错误比特较多,实施ECC解码无法得到正确的数据。可选地,存储设备的控制部件还采取其他一些数据校正的措施(例如,重读(Read-Retry),RAID数据重建等)以尝试恢复正确的数据。依然存在一些情况,采用了多种或所有数据校验措施依然无法得到正确的数据,将这种情况称为发生了UECC(不可纠正错误, uncorrectable error correction code)。
存储系统的数据传输通道或其他部件也可能引起数据错误。NVMe标准定义了端到端数据保护(End-to-EndDataProtection)。在传输的数据中携带保护信息(PI,ProtectionInformation),保护信息同传输的数据相关,以识别传输的数据是否存在错误。在ICITS(International Committee for Information Standards,国际信息技术标准委员会)的T10子委员会定义的DIF/DIX (DataIntegrityField/DataIntegrityExtension)(从http://www.t10.org/ftp/t10/document.03/03-111r0.pdf可获得)也用于校验数据完整性。
NVMe标准中的保护信息(PI)包括守卫(Guard)、应用标签 (ApplicationTag)与引用标签(ReferenceTag)三种字段。作为举例,守卫 (Guard)字段是对应数据的校验信息(例如,CRC校验),应用标签 (ApplicationTag)字段由产生数据的应用程序提供,引用标签(ReferenceTag) 字段是例如所传输数据的逻辑地址。
存储设备的控制部件在例如进行数据搬移时,附带对保护信息(PI)进行检查。若保护信息(PI)未通过检查,将提示数据存在错误。
图2A与图2B展示了在存储设备中使用PI的示意图。
参看图2A,在一种工作模式下,主机向存储设备的控制部件提供的待写入数据210携带了保护信息(PI)。携带的保护信息同数据210具有指定的关系,从而控制部件检查接收的数据与保护信息(PI)是否具有指定的关系来检查数据传输中是否出现错误。控制部件还将数据215连同保护信息(PI) 一起写入NVM芯片。数据215是同数据210相同的数据,或者从数据210 得到的数据(例如添加了ECC校验信息)。
在读出数据时,控制部件从NVM芯片获取数据225及其保护信息(PI)。控制部件检查数据225与其保护信息(PI)是否具有指定的关系,并向主机传输数据220与其保护信息(PI)。数据220与数据225可以是相同的数据,或者对数据225进行ECC解码得到数据220。
作为举例,控制部件的DMA(Direct Memory Access)单元在传输数据时对数据的保护信息(PI)进行检查,和/或为数据生成保护信息(PI)。
参看图2B,在又一种工作模式下,主机向存储设备的控制部件提供的待写入数据240不携带保护信息(PI)。控制部件根据数据240生成保护信息 (PI),并将数据245连同生成的保护信息(PI)一起写入NVM芯片。数据245是同数据240相同的数据,或者从数据240得到的数据(例如添加了 ECC校验信息)。在读出数据时,控制部件从NVM芯片获取数据255及其保护信息(PI)。控制部件检查数据255与其保护信息(PI)是否具有指定的关系,若检查结果正确,控制部件删除数据255所携带的保护信息(PI),并将数据250传输给主机。数据250与数据255可以是相同的数据,或者对数据255进行ECC解码得到数据250。
图3展示了在存储设备中使用ECC的示意图。
DMA(DirectMemoryAccess,直接存储器访问)单元与ECC单元(包括ECC编码单元与ECC解码单元)是存储设备的控制部件组成部分。DMA 单元将主机要写入存储设备的数据从主机搬移到控制部件,再由ECC单元编码对数据实施ECC编码,得到校验数据,并将主机提供的待写入数据与校验数据一同写入NVM芯片。对于来自主机的读命令,从NVM芯片读出的数据先由ECC解码单元进行错误校正解码,解码后的正确数据被DMA单元传输给主机。
一些情况下,ECC解码单元对从NVM芯片读出的数据的错误校正解码失败。错误处理单元进而尝试一种或多种错误处理方案。例如,错误处理单元通过采用一个或多个重读命令来从NVM芯片再次读出数据。重读命令改变了读命令所使用的参数(例如判决电压阈值)。通过采用一个或多个重读命令读出的数据,有一定概率被ECC解码单元成功错误校正。主流的NVM 芯片提供了例如几十种重读命令。尝试一种或多种重读命令,极大地延长了处理读命令的延迟。依然作为举例,错误校正单元还通过RAID机制来从 NVM芯片的其他位置存储的数据中重建错误矫正译码失败的数据。
发明内容
即使尝试了多种错误处理方案,依然可能存在一些读出数据无法被错误校正或重建。在此情况下,向主机报告发生了不可纠正错误(UECC)。然而此时,由于尝试的多种错误处理方案,相比于读命令的通常处理延迟,已经多消耗了极多的时间,引入了极大的延迟。显然,相对于收到的发生了 UECC的读命令处理结果而言,所引入的延迟是非常不利的,既消耗了大量的时间,又没能得到积极的结果。并且这种延迟又是难以隐藏的,因为多尝试一种错误处理方案,就多一些得到正确数据的几率,直到尝试了所有的可能性,才能知晓UECC的发生。
尝试多种错误处理方案也会导致主机端超时。主机会监视其发出的每个读命令,若读命令长期没有被处理完成,会发生主机端超时,使得主机认为存储设备出现故障。存储设备要避免这种现象的发生。
当出现了UECC后,导致UECC的数据依然存在。下一次访问该数据时依然会导致UECC。需要避免再次读取该会导致UECC的数据。
根据本申请的第一方面,提供了根据本申请第一方面的第一快速处理 UECC的方法,包括:收到从第一逻辑地址读数据的读命令;获取同第一逻辑地址对应的第一物理地址;从第一物理地址中读出第一数据;响应于读出的第一数据存在UECC,生成第二数据或者获取预先准备的第二数据;为第二数据分配第二物理地址,记录第一逻辑地址与第二物理地址的映射关系;向主机告知出现了UECC。
根据本申请的第一方面的第一快速处理UECC的方法,提供了根据本申请第一方面的第二快速处理UECC的方法,响应于读出的第一数据中未出现 UECC,判断第一数据的保护信息是否正确,响应于第一数据的保护信息正确,读命令处理成功,将读命令对应的第一数据传输给主机。
根据本申请的第一方面的第二快速处理UECC的方法,提供了根据本申请第一方面的第三快速处理UECC的方法,响应于第一数据的保护信息错误,向主机告知出现了UECC。
根据本申请的第一方面的第一至第三快速处理UECC的方法之一,提供了根据本申请第一方面的第四快速处理UECC的方法,在FTL表中记录第一逻辑地址与分配的第二物理地址的映射关系,并且第一逻辑地址与分配的第二物理地址的映射关系,替代了之前记录的第一逻辑地址与分配的第一物理地址的映射关系。
根据本申请的第一方面的第一至第四快速处理UECC的方法之一,提供了根据本申请第一方面的第五快速处理UECC的方法,对第二数据实施ECC 编码,并生成校验数据,并将第二数据及其校验数据写入第二物理地址所指示的存储空间。
根据本申请的第一方面的第一至第五快速处理UECC的方法之一,提供了根据本申请第一方面的第六快速处理UECC的方法,第二数据包括数据部分与保护信息,第二数据的保护信息被设置为无法通过对保护信息的检查。
根据本申请的第一方面的第五快速处理UECC的方法,提供了根据本申请第一方面的第七快速处理UECC的方法,响应于再次收到从第一逻辑地址读数据的读命令,查询FTL表,得到同第一逻辑地址对应的第二物理地址。
根据本申请的第一方面的第七快速处理UECC的方法,提供了根据本申请第一方面的第八快速处理UECC的方法,对从第二物理地址读出的数据进行错误校正解码,得到了第二数据,将第二数据或其中的数据部分传输给主机。
根据本申请的第一方面的第八快速处理UECC的方法,提供了根据本申请第一方面的第九快速处理UECC的方法,检查第二数据的数据部分及其保护信息,若保护信息未通过检查,向主机指示对该再次收到的访问第一逻辑地址的读命令的处理失败。
根据本申请的第一方面的第九快速处理UECC的方法,提供了根据本申请第一方面的第十快速处理UECC的方法,向主机报告该再次收到的访问第一逻辑地址的读命令出现UECC。
根据本申请的第一方面的第九或第十快速处理UECC的方法,提供了根据本申请第一方面的第十一快速处理UECC的方法,向主机报告该再次收到的访问第一逻辑地址的读命令出现保护信息未通过检查的结果。
根据本申请的第一方面的第八快速处理UECC的方法,提供了根据本申请第一方面的第十二快速处理UECC的方法,检查第二数据的数据部分及其保护信息,若保护信息未通过检查,若同主机约定的数据传输模式指示要同所传输的数据一道传输保护信息则将第二数据传输给主机,并且向主机报告该再次收到的访问第一逻辑地址的读命令出现保护信息未通过检查的结果。
根据本申请的第一方面的第十二快速处理UECC的方法,提供了根据本申请第一方面的第十三快速处理UECC的方法,若同主机约定的数据传输模式指示传输数据时不传输保护信息,则将第二数据中的数据部分传输给主机,以及向主机报告该再次收到的访问第一逻辑地址的读命令出现UECC。
根据本申请的第一方面的第十三快速处理UECC的方法,提供了根据本申请第一方面的第十四快速处理UECC的方法,为主机要读出的数据添加数据保护信息,并将数据与保护信息一起写入NVM芯片。
根据本申请的第一方面的第九至第十四快速处理UECC的方法之一,提供了根据本申请第一方面的第十五快速处理UECC的方法,第二数据中的保护信息被设置以使得对第二数据的保护信息进行检查时将识别出该第二数据的保护信息不正确。
根据本申请的第一方面的第十五快速处理UECC的方法,提供了根据本申请第一方面的第十六快速处理UECC的方法,响应于识别出第二数据是为应对出现UECC而设置的数据,而向主机报告出现UECC而不是报告保护信息未通过检查。
根据本申请的第一方面的第七至第十六快速处理UECC的方法之一,提供了根据本申请第一方面的第十七快速处理UECC的方法,若从第二物理地址读出的数据ECC解码失败并出现了UECC,再次生成第二数据或者获取预先准备的第二数据。
根据本申请的第一方面的第十七快速处理UECC的方法,提供了根据本申请第一方面的第十八快速处理UECC的方法,为第二数据分配第三物理地址,并向主机告知出现了UECC。
根据本申请的第一方面的第十七或第十八快速处理UECC的方法,提供了根据本申请第一方面的第十九快速处理UECC的方法,在FTL表中记录第一逻辑地址与第三物理地址的映射关系,对第二数据实施ECC编码并生成校验数据,第二数据及其校验数据与第一逻辑地址被写入第三物理地址所指示的存储空间。
根据本申请的第一方面的第一至第十九快速处理UECC的方法之一,提供了根据本申请第一方面的第二十快速处理UECC的方法,保护信息是根据 NVMe标准的保护信息或者根据ICITS的T10子委员定义的DIF/DIX。
根据本申请的的第二方面,提供了根据本申请的第二方面的第一快速处理UECC的存储设备,包括:控制部件与非易失存储器,控制部件用于执行本申请的第一方面的第一至第二十之一的快速处理UECC的方法。
根据本申请的第三方面,提供一种包括程序代码的程序,当被载入存储设备并在存储设备上执行时,所述程序代码使所述存储设备执行根据本申请第一方面的快速处理UECC的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中的存储设备的框图;
图2A展示了在存储设备中使用PI的示意图;
图2B展示了另一种在存储设备中使用PI的示意图;
图3展示了在存储设备中使用ECC的示意图;
图4展示了根据本申请实施例的处理UECC事件的示意图;
图5展示了根据本申请实施例的处理读命令的流程图;
图6展示了根据本申请实施例的另一处理读命令的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图4展示了根据本申请实施例的处理UECC事件的示意图。
存储设备的控制部件包括DMA单元、地址映射单元、ECC单元(包括 ECC编码单元与ECC解码单元)与错误处理单元。
对于主机发送给存储设备的写命令,DMA单元将主机要写入存储设备的数据从主机搬移到控制部件。地址映射单元为写命令分配可用的物理地址,并记录写命令指示的逻辑地址与分配的物理地址的映射关系。由ECC单元编码对待写入的数据实施ECC编码,得到校验数据,并将主机提供的待写入数据与校验数据一同写入NVM芯片。
对于来自主机的读命令,地址映射单元获取同读命令所指示的逻辑地址对应的物理地址,从获取的物理地址读出数据,由ECC解码单元对读出数据进行错误校正解码,解码后的正确数据被DMA单元传输给主机。
作为一个例子,NVM芯片的物理地址PBA 412处记录了数据415与可选地逻辑地址LBA410。来自主机的读命令指示从逻辑地址410读出数据(图 4中由(1)指示)。地址映射单元获取同读命令所指示的逻辑地址LBA 410 对应的物理地址为物理地址PBA 412。从物理地址PBA 412读出的数据被 ECC解码单元进行错误校正解码(图4中由(2)指示),但解码失败。错误处理单元进而尝试一种或多种错误处理方案。若尝试了多种或所有错误处理方案后,依然出现了UECC,错误处理单元生成数据425或者获取预先准备的数据425。数据425包括数据部分与保护信息(PI),并且数据425的保护信息(PI)被特殊设置,其同数据425的数据部分不符合保护信息的检查规则。从而,若DMA传输数据425时检查其保护信息,检查结果会指示失败。例如,保护信息的守卫(Guard)字段应当是对数据425的数据部分的循环冗余校验(CRC)的计算结果,则设置守卫(Guard)字段不同于对数据部分的循环冗余校验(CRC)的计算结果,将引起对保护信息(PI)的检查失败。又例如,引用标签(referenceTag)字段应当是对数据部分的逻辑地址,则设置引用标签(referenceTag)字段不同于对数据的逻辑地址(例如设置为全0或者全1的逻辑地址),将引起对保护信息(PI)的检查失败。
错误处理单元,指示地址映射单元或者控制部件的其他单元,为数据425 分配物理地址PBA 422(图4中由(3)指示),并向主机告知读逻辑地址 410的读命令处理失败,出现了UECC(图4中由(4a)指示)。地址映射单元在FTL表中记录逻辑地址LBA 410与分配的物理地址PBA 422的映射关系(图4中由(4b)指示),并且逻辑地址LBA 410与分配的物理地址PBA 422的映射关系,替代了之前记录的逻辑地址LBA 410与分配的物理地址PBA 412的映射关系。ECC编码单元对数据425实施ECC编码并生成校验数据。数据425(及其校验数据)与可选地逻辑地址LBA 410被写入物理地址PBA422所指示的存储空间(图4中由(5)指示)。从而在NVM芯片中,记录了对应于逻辑地址LBA 410的两份数据(数据415与数据425),分别位于物理地址PBA 412处与物理地址PBA 422处(图4中由(6)指示)。可以理解地,从NVM芯片读出的数据存在UECC是低概率事件,从而从物理地址PBA 422读出的数据依然存在UECC的概率极低。
若主机再次发出对逻辑地址LBA 410的读命令(图4中由(7)指示),地址映射单元查询FTL表,得到同逻辑地址LBA 410对应的物理地址是PBA 422。从物理地址PBA 422读出的数据被ECC解码单元进行错误校验解码(图 4中由(8)指示),并且ECC解码成功(或者经过一次或多个错误处理后 ECC解码成功,或者数据重建成功),得到了数据425。ECC解码单元将数据425提供给DMA单元(图4中由(9)指示),DMA单元将数据425或其中的数据部分传输给主机(图4中由(10)指示)。DMA单元检查数据425的数据部分及其保护信息。由于数据425的保护信息(PI)同数据部分不符合保护信息的检查规则,DMA单元会就数据425报告保护信息(PI)未通过检查。存储设备的控制部件获取DMA单元报告的保护信息(PI)未通过检查的结果,向主机指示对该访问逻辑地址LBA 410的读命令的处理失败。
作为举例,控制部件虽然收到的是数据425的保护信息(PI)未通过检查的结果,但向主机报告该访问逻辑地址LBA 410的读命令出现UECC。作为又一个例子,控制部件向主机报告该访问逻辑地址LBA 410的读命令出现保护信息(PI)未通过检查的结果。
依然作为举例,若存储设备同主机约定的数据传输模式指示要同所传输的数据一道传输保护信息(PI),也参看图2A,则DMA单元将数据425传输给主机,并且控制部件向主机报告该访问逻辑地址LBA 410的读命令出现保护信息(PI)未通过检查的结果。
若存储设备同主机约定的数据传输模式指示传输数据时不传输保护信息 (PI),也参看图2B,则DMA单元将数据425中的数据部分传输给主机,此模式下,主机不知晓保护信息(PI)的情况。控制部件向主机报告该访问逻辑地址LBA 410的读命令出现UECC(而不是报告保护信息(PI)未通过检查的结果)。并且,在此模式下,存储设备为主机要读出的数据添加数据保护(PI)信息,并将数据与保护信息(PI)一起写入NVM芯片。从而控制部分认为从NVM芯片读出的数据是携带了保护信息(PI)的数据。
从而,根据本申请的实施例,在访问某逻辑地址的数据第一次出现UECC 后,通过为该逻辑地址存储带有无法通过保护信息(PI)检查的指定数据并更新FTL表,来使得在随后该逻辑地址再次被读取时,所读出的数据能被 ECC解码单元解码成功,从而缩短或消除了错误处理单元对该逻辑地址对应的数据的错误处理过程,从而降低了访问该逻辑地址的读命令的处理延迟。并且,该指定数据无法通过对保护信息(PI)的检查,从而使得控制部件得以知晓该数据存在错误,并向主机报告访问该逻辑地址的读命令的处理出现错误(UECC或者保护信息(PI)未通过检查)。
在可选的实施方式中,数据425中的保护信息(PI)被设置以区别于通常的保护信息(PI),使得控制部件依据数据425的保护信息(PI)识别出数据425是为应对出现UECC而特别设置的数据,进而向主机报告出现UECC 而不是报告保护信息(PI)未通过检查。可以理解地,对于数据425,控制部件向主机报告保护信息(PI)未通过检查也是合理的。
依然作为举例,若从物理地址PBA 422读出的数据被ECC解码单元进行错误校正解码(图4中由(8)指示),并且ECC解码失败,并且在尝试一种或多种错误处理方案后依然出现了UECC,错误处理单元再次生成数据 425或者获取预先准备的数据425。错误处理单元,指示地址映射单元或者控制部件的其他单元,为数据425分配另一物理地址(图4中由(3)指示),并向主机告知读逻辑地址410的读命令处理失败,出现了UECC(图4中由(4a)指示)。地址映射单元在FTL表中记录逻辑地址LBA410与新分配的物理地址的映射关系(图4中由(4b)指示)。ECC编码单元对数据425实施ECC编码并生成校验数据。数据425(及其校验数据)与可选地逻辑地址 LBA 410被写入新分配的物理地址所指示的存储空间(图4中由(5)指示)。从而在NVM芯片中,记录了对应于逻辑地址LBA 410的三份数据,分别位于物理地址PBA 412处、物理地址PBA 422处与新分配的物理地址处。
图5展示了根据本申请实施例的处理读命令的流程图。
存储设备收到读命令,读命令指示从第一逻辑地址读取数据(510)。存储设备的控制部件用第一逻辑地址查询FTL表,获得同第一逻辑地址对应的第一物理地址(520)。控制部件从第一物理地址读出数据(530)。控制部件判断读出的数据是否存在UECC(540),响应于存在UECC,控制部件向第二物理地址写入存在数据保护错误的指定数据(542),控制部件在FTL 表中记录第一逻辑地址关联于第二物理地址(544),将数据错误作为对读命令的响应(546),即将出现UECC反馈给主机。响应于不存在UECC,控制部件传输读出的数据(541),控制部件判断是否发生保护信息错误(543),响应于出现保护信息错误,将数据错误作为对读命令的响应(546),即将出现UECC反馈给主机。响应于读出的数据未出现保护信息错误,将处理成功作为对读命令的响应(545),即控制部件将读出的数据成功传输给主机。
图6展示了根据本申请实施例的另一处理读命令的流程图。
存储设备收到读命令,读命令指示从第一逻辑地址读取数据(610)。存储设备的控制部件用第一逻辑地址查询FTL表,获得同第一逻辑地址对应的第一物理地址(620)。控制部件从第一物理地址读出数据(630)。控制部件判断读出的数据是否存在UECC(640)。响应于读出的数据存在UECC,控制部件向第二物理地址写入存在数据保护错误的指定数据(642),控制部件在FTL表中记录第一逻辑地址关联于第二物理地址(644),控制部件判断要传输的数据是否携带数据保护信息(646);响应于要传输的数据携带了数据保护信息,控制部件将数据错误作为对读命令的响应(648);响应于要传输的数据未携带数据保护信息,控制部件将出现UECC反馈给主机(650)。
响应于读出的数据不存在UECC,控制部件传输读出的数据(641),控制部件判断是否发生保护信息错误(643)。响应于读出的数据出现保护信息错误,控制部件判断要传输的数据是否携带数据保护信息(646);响应于要传输的数据携带了数据保护信息,控制部件将数据错误作为对读命令的响应 (648);响应于要传输的数据未携带数据保护信息,控制部件将出现UECC 反馈给主机(650)。响应于读出的数据未出现保护信息错误,将处理成功作为对读命令的响应(645),即控制部件将读出的数据成功传输给主机。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种快速处理UECC的方法,其特征在于,包括:
收到从第一逻辑地址读数据的读命令;
获取同第一逻辑地址对应的第一物理地址;
从第一物理地址中读出第一数据;
响应于读出的第一数据存在UECC,生成第二数据或者获取预先准备的第二数据;
为第二数据分配第二物理地址,记录第一逻辑地址与第二物理地址的映射关系;
向主机告知出现了UECC。
2.如权利要求1所述的方法,其特征在于,响应于读出的第一数据中未出现UECC,判断第一数据的保护信息是否正确,响应于第一数据的保护信息错误,向主机告知出现了UECC。
3.如权利要求1或2所述的方法,其特征在于,对第二数据实施ECC编码,并生成校验数据,并将第二数据及其校验数据写入第二物理地址所指示的存储空间。
4.如权利要求1或2所述的的方法,其特征在于,
第二数据包括数据部分与保护信息,第二数据的保护信息被设置为无法通过对保护信息的检查。
5.如权利要求3所述的方法,其特征在于,响应于再次收到从第一逻辑地址读数据的读命令,查询FTL表,得到同第一逻辑地址对应的第二物理地址。
6.如权利要求5所述的方法,其特征在于,对从第二物理地址读出的数据进行错误校正解码,得到了第二数据,将第二数据或其中的数据部分传输给主机。
7.如权利要求6所述的方法,其特征在于,检查第二数据的数据部分及其保护信息,若保护信息未通过检查,向主机指示对该再次收到的访问第一逻辑地址的读命令的处理失败。
8.如权利要求6所述的方法,其特征在于,检查第二数据的数据部分及其保护信息,若保护信息未通过检查,若同主机约定的数据传输模式指示要同所传输的数据一道传输保护信息则将第二数据传输给主机,并且向主机报告该再次收到的访问第一逻辑地址的读命令出现保护信息未通过检查的结果。
9.如权利要求8所述的方法,其特征在于,若同主机约定的数据传输模式指示传输数据时不传输保护信息,则将第二数据中的数据部分传输给主机,以及向主机报告该再次收到的访问第一逻辑地址的读命令出现UECC。
10.一种快速处理UECC的存储设备,其特征在于,包括:控制部件与非易失存储器,所述控制部件用于执行如权利要求1~9任一项所述的快速处理UECC的方法。
CN201910930673.XA 2019-09-29 2019-09-29 快速处理uecc的方法及其存储设备 Pending CN112579329A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910930673.XA CN112579329A (zh) 2019-09-29 2019-09-29 快速处理uecc的方法及其存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910930673.XA CN112579329A (zh) 2019-09-29 2019-09-29 快速处理uecc的方法及其存储设备

Publications (1)

Publication Number Publication Date
CN112579329A true CN112579329A (zh) 2021-03-30

Family

ID=75110380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910930673.XA Pending CN112579329A (zh) 2019-09-29 2019-09-29 快速处理uecc的方法及其存储设备

Country Status (1)

Country Link
CN (1) CN112579329A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
US20210248035A1 (en) Storage device using host memory and operating method thereof
US8650463B2 (en) Solid state drive and method of controlling an error thereof
JP6855102B2 (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
TWI594120B (zh) 用於記錄非揮發性記憶體系統中之停滯時間之系統、方法及程式產品
US9195541B2 (en) Controlling nonvolatile memory device and nonvolatile memory system
US9274882B2 (en) Page retirement in a NAND flash memory system
KR101491943B1 (ko) 트랜잭션 로그 복구
US8799745B2 (en) Storage control apparatus and error correction method
US10474527B1 (en) Host-assisted error recovery
US11340986B1 (en) Host-assisted storage device error correction
US11157357B2 (en) Operation methods of memory system and host, and computing system
US11521701B2 (en) Memory controller with read error handling
US10552048B2 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
KR20220021186A (ko) 데이터 처리 시스템 내 데이터를 공유하는 장치 및 방법
KR20220001222A (ko) 베드 블록을 처리하는 메모리 시스템 및 동작 방법
US10223022B2 (en) System and method for implementing super word line zones in a memory device
US8301981B2 (en) Data access method for flash memory and storage system and controller thereof
TW201913382A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR20220045343A (ko) 데이터 처리 시스템 내 데이터 전송에서 발생한 에러를 정정하는 장치 및 방법
KR20170114438A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11385833B2 (en) Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
CN107808686B (zh) 读出错测试方法与装置
TWI709850B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN112579329A (zh) 快速处理uecc的方法及其存储设备
CN114661516A (zh) 具有数据质量度量和可选数据恢复方案的存储设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination