CN112579328A - 处理编程出错的方法与存储设备 - Google Patents

处理编程出错的方法与存储设备 Download PDF

Info

Publication number
CN112579328A
CN112579328A CN201910927447.6A CN201910927447A CN112579328A CN 112579328 A CN112579328 A CN 112579328A CN 201910927447 A CN201910927447 A CN 201910927447A CN 112579328 A CN112579328 A CN 112579328A
Authority
CN
China
Prior art keywords
command
write command
block
write
processing
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
CN201910927447.6A
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 CN201910927447.6A priority Critical patent/CN112579328A/zh
Publication of CN112579328A publication Critical patent/CN112579328A/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了处理编程出错的方法与存储设备。所公开的写命令的处理方法,具体包括以下步骤:获取写命令;识别写命令的处理结果;若识别写第一物理块的写命令处理失败,则生成新的写命令,将写命令指示写入的数据重新写入其他物理块;将第一物理块标记为坏块。

Description

处理编程出错的方法与存储设备
技术领域
本申请涉及存储技术,尤其涉及在存储设备中NVM(Non-Volatile Memory,非易失存储器)指示处理编程命令出错后的处理方法及其存储设备。
背景技术
图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small ComputerSystem Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandom Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、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”等。
存储器目标(Target)是NAND闪存封装内的共享CE(,Chip Enable,芯片使能)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
NVM上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
一些存储设备的FTL由存储设备所耦合的主机提供,由主机的存储器存储FTL表,主机的处理器执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。
发明内容
根据本申请的第一方面,提供了根据本申请第一方面的第一写命令的处理方法,其中,具体包括以下步骤:获取写命令;识别写命令的处理结果;若识别写第一物理块的写命令处理失败,则生成新的写命令,将写命令指示写入的数据重新写入其他物理块;将第一物理块标记为坏块。
根据本申请第一方面的第一写命令的处理方法,提供了本申请第一方面的第二写命令的处理方法,其中,还包括,生成多个写命令,将第一物理块中已经写入的数据搬移至其他物理块。
根据本申请第一方面的第一或第二写命令的处理方法,提供了本申请第一方面的第三写命令的处理方法,其中,若识别写第一物理块上的写命令处理成功,则检查写命令所访问的物理块是否被标记为坏块,若第一物理块被标记为坏块,则生成新的写命令将写命令指示写入的数据重新写入其他物理块。
根据本申请第一方面的第三写命令的处理方法,提供了本申请第一方面的第四写命令的处理方法,其中,若物理块未被标记为坏块,则释放写命令占用的资源,或返回写命令的处理结果。
根据本申请第一方面的第一或第二写命令的处理方法,提供了本申请第一方面的第五写命令的处理方法,其中,响应于将第一物理块标记为坏块,还为第一物理块所在的逻辑单元设置坏块标记。
根据本申请第一方面的第五写命令的处理方法,提供了本申请第一方面的第六写命令的处理方法,其中,若识别写第一物理块的写命令处理成功,则检查第一物理块所在的逻辑单元是否被设置了坏块标记。
根据本申请第一方面的第六写命令的处理方法,提供了本申请第一方面的第七写命令的处理方法,其中,若第一物理块所在的逻辑单元未被设置坏块标记,,释放写第一物理块的写命令占用的资源,或返回写第一物理块的写命令的处理结果。
根据本申请第一方面的第六或第七写命令的处理方法,提供了本申请第一方面的第八写命令的处理方法,其中,第一物理块所在的逻辑单元被设置了坏块标记,则检查第一物理块是否被标记为坏块。
根据本申请第一方面的第八写命令的处理方法,提供了本申请第一方面的第九写命令的处理方法,其中,若第一物理块被标记为坏块,则生成新的写命令将写第一物理块的写命令指示的写入数据重新写入其他物理块。
根据本申请第一方面的第八或第九写命令的处理方法,提供了本申请第一方面的第十写命令的处理方法,其中,若第一物理块未被标记为坏块,则清除第一物理块所在的逻辑单元的坏块标记。
根据本申请第二方面,提供了根据本申请第二方面的第一控制部件,其中,包括主机接口、命令处理单元、命令完成处理单元、命令队列;主机接口与主机交换写命令和数据;命令处理单元获取写命令,将写命令填充到同逻辑单元对应的命令队列中,并将写命令通过介质接口提供给非易失性存储器;命令完成处理单元识别非易失性存储器处理写命令的处理结果;若识别写第一物理块的写命令处理结果失败,则命令完成处理单元指示命令处理单元生成新的写命令以将写命令指示写入的数据重新写入其他物理块,并将第一物理块标记为坏块。
根据本申请第二方面的第一控制部件,提供了本申请第二方面的第二控制部件,其中,响应于写命令的处理结果失败,命令处理单元还生成多个写命令,将第一物理块中已经写入的数据搬移至其他物理块。
根据本申请第二方面的第一或第二控制部件,提供了本申请第二方面的第三控制部件,其中,若识别第一物理块的写命令处理结果成功,则命令完成处理单元检查第一物理块是否被标记坏块。
根据本申请第二方面的第三控制部件,提供了本申请第二方面的第四控制部件,其中,若命令完成处理单元检查出第一物理块被标记为坏块,则命令处理单元生成新的写命令将写第一物理块的写命令写入的数据重新写入其他物理块。
根据本申请第二方面的第三或第四控制部件,提供了本申请第二方面的第五控制部件,其中,若命令完成处理单元检查第一物理块未被标记为坏块,命令完成处理单元释放写第一物理块的写命令占用的资源或向主机返回写第一物理块的写命令的处理结果。
根据本申请第二方面的第一或第二控制部件,提供了本申请第二方面的第六控制部件,其中,响应于命令处理单元将将第一物理块标记为坏块,还为第一物理块所在的逻辑单元设置坏块标记。
根据本申请第二方面的第六控制部件,提供了本申请第二方面的第七控制部件,其中,命令完成处理单元识别出第一物理块的写命令处理成功,则检查第一物理块所在的逻辑单元是否被设置坏块标记。
根据本申请第二方面的第七控制部件,提供了本申请第二方面的第八控制部件,其中,若第一物理块所在的逻辑单元未被设置坏块标记,则释放写第一物理块的写命令所占用的资源,或向主机返回命令处理结果。
根据本申请第二方面的第七或第八控制部件,提供了本申请第二方面的第九控制部件,其中,若第一物理块所在的逻辑单元被设置坏块标记,则还检查第一物理块是否被标记为坏块,若若第一物理块被标记为坏块,则生成新的写命令将写第一物理块的写命令指示的写入数据重新写入其他物理块。
根据本申请第二方面的第九控制部件,提供了本申请第二方面的第十控制部件,其中,若第一物理块未被标记为坏块,则清除第一物理块所在的逻辑单元的坏块标记。
根据本申请第三方面,提供了根据本申请第三方面的第一存储设备,其中,包括控制部件与非易失存储介质,控制部件执行第一方面的方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1展示了存储设备的框图;
图2A展示了根据本申请实施例的控制部件的框图;
图2B展示了根据本申请实施例的处理命令的流程图;
图3展示了根据本申请又一实施例的处理命令的流程图;
图4展示了根据本申请再一实施例的处理命令的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A为根据本申请实施例的控制部件的框图。图2A中示出的控制部件包括主机接口210、命令处理单元230、命令完成处理单元240和用于访问NVM芯片105的介质接口220。多个NVM芯片105耦合到控制部件。NVM芯片包括一个或多个逻辑单元(LUN),例如,LUN 0、LUN1、LUN 2与LUN 3。
主机接口210用于同主机交换命令与数据。命令是例如访问存储设备的IO命令。在一个例子中,主机与存储设备通过NVMe/PCIe协议通信,主机接口210处理PCIe协议数据包,提取出NVMe协议命令,并向主机返回NVMe协议命令的处理结果。
命令处理单元230耦合到主机接口210,接收主机发送给存储设备的命令,并将命令提供给介质接口220。控制部件提供多个命令队列(例如命令队列0、命令队列1、命令队列2与命令队列3),每个命令队列同NVM芯片的逻辑单元之一对应。命令处理单元将访问例如LUN 1的命令填充到同LUN 1对应的命令队列1。分配器230可由CPU或专用硬件实现。
介质接口220将NVM芯片处理命令的结果提供给命令完成处理单元240。若命令被处理成功,命令完成处理单元240释放该命令所占用的资源(例如,临时存储该命令要写入的数据的缓存),或向主机返回命令处理结果。若命令处理失败,命令完成处理单元240可发起错误处理过程(例如将缓存的该命令要写入的数据重新写入NVM芯片),以尝试消除命令处理失败所产生的影响,和/或向主机返回命令处理结果。
命令队列是先进先出队列。命令处理单元230将命令填充到命令队列的队尾。从命令队列的队头获取命令,并由介质接口220根据命令访问NVM芯片。
命令队列包括多个条目,每个条目容纳一个命令。从而命令队列能容纳访问同其对应的逻辑单元的多个命令。并且,命令队列中的命令被顺序的处理。作为举例,参看图2A,对应于LUN 1的命令队列1被按顺序填充了写(也称为编程)页X的命令、写页X+1的命令、读页Y的命令以及写页X+1的命令。
NVM芯片处理命令可能出错。例如,命令队列1的写页X的命令被NVM芯片处理时出错,介质接口220作为响应向命令完成处理单元240指示写页X的命令处理出错。命令完成处理单元240据以将页X所在的块(称为块B)识别为坏块。坏块不再被写入数据,并且,已被写入坏块的数据将被搬移到其他块。命令完成处理单元240向命令处理单元230指示块B是坏块。从而命令处理单元230不再向块B写入数据。以及命令处理单元230在随后的时间产生多个命令,以将已写入块B的数据搬移到其他块。
图2B展示了根据本申请实施例的处理命令的流程图。
命令处理单元通过命令队列提供命令。介质接口220根据命令队列的命令访问NVM芯片,并将NVM芯片处理命令的结果提供给命令完成处理单元240。命令完成处理单元240识别命令的处理结果(210)。若识别出对块B的页X的编程命令处理失败,指示命令处理单元230生成新的写命令来将要写入页X的数据重新写入其他块(220)。以及将块B标记为坏块(230)。命令处理单元230不再向标记为坏块的块写入数据。命令处理单元230还生成多个命令将已写入块B的数据搬移到其他块(240)。
然而,参看命令队列1,在写页X的命令之后(此时尚未识别出块B是坏块),写页X+1的命令与写页X+2的命令也被填充到队列。命令完成处理单元240获知写页X的命令处理出错时,写页X+1的命令与写页X+2的命令已被添加到命令队列1或者被提交给LUN 1。因而写页X+1的命令与写页X+2的命令无法被撤销。这导致事实上向坏块B提交了写命令(例如,写页X+1的命令与写页X+2的命令)。
若NVM芯片处理写页X+1的命令或写页X+2的命令失败,命令完成处理单元240响应于对写页X+1的命令或写页X+2的命令处理出错的指示,有机会通知命令处理单元230重新生成写命令,以将写页X+1的命令或写页X+2的命令对应的数据重新写入其他块,从而保证这些数据被可靠地记录的NVM芯片中。
但是,若NVM芯片处理写页X+1的命令或写页X+2的命令成功,命令完成处理单元240会接收到对写页X+1的命令或写页X+2的命令处理成功的指示。这种情况下,用于写页X+1的命令或写页X+2的命令的资源被释放,并且写入页X+1或页X+1的数据被不可靠地存储在块B,直到命令处理单元响应于识别出块B是坏块,而将块B的数据搬移到其他块,这些数据才被可靠地存储在NVM芯片。由于块B已被识别为坏块,从块B读出数据存在风险,块B上的数据可能已经损坏,这降低了存储设备的可靠性。
图3展示了根据本申请又一实施例的处理命令的流程图。
命令完成处理单元240(也参看图2A)获取指示NVM对命令处理完成的消息,并识别消息指示的命令处理结果(310)。若对块B的页X的编程失败,指示命令处理单元230生成新的写命令来将要写入页X的数据重新写入其他块(320)。以及将块B标记为坏块(330)。命令处理单元230不再向标记为坏块的块写入数据。命令处理单元230还生成多个命令将被标记为坏块的块上已写入的数据搬移到其他块(将该过程称为数据回收)(340)。数据回收操作未必立即被执行,而是在适当的时候(例如,存储设备空闲、存储设备的可用块数据小于阈值等)被执行。
若命令完成处理单元240识别出写块B的页X的命令处理成功,进一步检查块B是否被标记为坏块(350)。若块B被标记为坏块,虽然当前写块B的页X的命令处理成功,也按照写块B的页X的命令处理失败来应对,例如指示命令处理单元230生成新的写命令来将要写入页X的数据重新写入其他块(360)。若块B未被标记为坏块,命令完成单元240释放该命令所占用的资源(例如,临时存储该命令要写入的数据的缓存),或向主机返回命令处理结果(370)。
由于控制部件提供了用于每个LUN的命令队列,命令队列能容纳多个待处理的命令,从而导致在收到NVM芯片指示的命令处理失败时,可能存在一个或多个命令已经被提交给命令队列,这些命令无法被撤销,并将由NVM芯片处理。根据图3的实施例,命令完成处理单元240对NVM芯片指示的处理成功的命令,还进行进一步的检查,检查该命令访问的块是否被标记为坏块。
例如,参看图2A,命令队列1被填入了写页X的命令、写页X+1的命令与写页X+2的命令。根据图3展示的实施例,命令处理完成单元240响应于发现写页X的命令处理失败,除了重写该命令对应的数据,还记录页X所在的块B是坏块。接下来,作为举例,NVM芯片处理写页X+1的命令与写页X+2的命令成功,并且命令完成处理单元240接收到这样的指示。虽然命令完成处理单元240知晓写页X+1的命令与写页X+2的命令处理功能,它还进一步检查这些命令访问的块B是否被标记为坏块。基于之前的记录,命令完成处理单元240知晓块B已被标记为坏块,从而命令完成处理单元240知晓写页X+1的命令与写页X+2的命令的处理存在风险或不可靠,并且按照页X+1的命令与写页X+2的命令处理失败来应对,例如立即将要写入页X+1与页X+2的数据重写到其他块,而不是等到数据回收操作时才进行数据搬移,从而无须块B的页X+1与页X+2来存储数据(即使其存储数据的时间较短),保障了存储设备的数据存储的可靠性。
图4展示了根据本申请再一实施例的处理命令的流程图。
存储设备中可能存在几万甚至更多的块。在承载写命令的块可能有十几到百余个。每个块所承载的写命令又有数百个(块中页的数量)。
对收到的每个NVM芯片的写命令处理结果,查询其访问的块是否曾出现命令处理失败,将引入额外开销,增加存储设备的工作负担。
对此,根据图4的实施例,命令完成处理单元240(也参看图2A)获取指示NVM对命令处理完成的消息(410),并识别消息指示的命令处理结果。若对块B的页X的编程失败,指示命令处理单元230生成新的写命令来将要写入页X的数据重新写入其他块(420)。以及将块B标记为坏块,还为块B所在的LUN设置坏块标记(430)。命令处理单元230不再向标记为坏块的块写入数据。命令处理单元230还生成多个命令将被标记为坏块的块上已写入的数据搬移到其他块(440)。
若命令完成处理单元240识别出写块B的页X的命令处理成功,进一步检查块B所在的LUN(记为LUN L)是否被设置了坏块标记(450)。若LUN L未被设置坏块标记,对写块B的页X的命令处理完成,命令完成处理单元240释放该命令所占用的资源(例如,临时存储该命令要写入的数据的缓存),或向主机返回命令处理结果(460)。若LUN L被设置了坏块标记,进一步检查块B是否被标记为坏块(470)。若块B被标记为坏块,虽然当前写块B的页X+1的命令处理成功,也按照写块B的页X的命令处理失败来应对,例如指示命令处理单元230生成新的写命令来将要写入页X的数据重新写入其他块(480)。若块B未被标记为坏块,清除块B所在的LUN L的坏块标记(490),对写块B的页X的命令处理完成,命令完成处理单元240释放该命令所占用的资源(例如,临时存储该命令要写入的数据的缓存),或向主机返回命令处理结果。
例如,参看图2A,命令队列1被填入了写页X的命令、写页X+1的命令与写页X+2的命令。根据图4展示的实施例,命令完成处理单元240响应于发现写页X的命令处理失败,除了重写该命令对应的数据,还记录页X所在的块B是坏块,以及为块B所在的LUN L设置坏块标记。接下来,作为举例,NVM芯片处理写页X+1的命令与写页X+2的命令成功,并且命令完成处理单元240接收到这样的指示。虽然命令完成处理单元240知晓写页X+1的命令与写页X+2的命令处理功能,它还进一步检查这些命令访问的LUN L是否被设置了坏块标记。基于之前的记录,LUN L被设置了坏块标记,从而命令处理单元继续检查块B是否被标记为坏块。基于之前的记录,命令完成处理单元240知晓块B已被标记为坏块,从而命令完成处理单元240知晓写页X+1的命令与写页X+2的命令的处理存在风险或不可靠,并且按照页X+1的命令与写页X+2的命令处理失败来应对。
接下来,命令完成处理单元240发现写块B1(块B1不同于块B,也位于LUN L)的页P的命令处理成功,命令完成处理单元240还进一步检查得到该命令访问的LUN L被设置了坏块标记。从而命令处理单元继续检查块B1是否被标记为坏块。基于之前的记录,命令完成处理单元240知晓块B1未被标记为坏块,从而清除LUN L上设置的坏块标记。接下来,命令处理完成处理单元240发现写块B1的页P+1的命令处理成功,命令完成处理单元240还进一步检查得到该命令访问的LUN L未设置了坏块标记,从而对写块B1的页P+1的命令处理完成,而省去了对块B1是否为坏块的检查。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种写命令的处理方法,其特征在于,具体包括以下步骤:
获取写命令;
识别写命令的处理结果;
若识别写第一物理块的写命令处理失败,则生成新的写命令,将所述写命令指示写入的数据重新写入其他物理块;
将所述第一物理块标记为坏块。
2.如权利要求1所述的写命令的处理方法,其特征在于,还包括,生成多个写命令,将第一物理块中已经写入的数据搬移至其他物理块。
3.如权利要求1或2所述的写命令的处理方法,其特征在于,若识别写第一物理块上的写命令处理成功,则检查写命令所访问的物理块是否被标记为坏块,若所述第一物理块被标记为坏块,则生成新的写命令将所述写命令指示写入的数据重新写入其他物理块。
4.如权利要求1或2所述的写命令的处理方法,其特征在于,响应于将第一物理块标记为坏块,还为第一物理块所在的逻辑单元设置坏块标记。
5.若权利要求4所述的写命令的处理方法,其特征在于,若识别写第一物理块的写命令处理成功,则检查第一物理块所在的逻辑单元是否被设置了坏块标记。
6.如权利要求5所述的写命令的处理方法,其特征在于,若第一物理块所在的逻辑单元未被设置坏块标记,,释放所述写第一物理块的写命令占用的资源,或返回写第一物理块的写命令的处理结果。
7.如权利要求5或6所述的写命令的处理方法,其特征在于,若第一物理块所在的逻辑单元被设置了坏块标记,则检查第一物理块是否被标记为坏块。
8.如权利要求7所述的写命令的处理方法,其特征在于,若第一物理块被标记为坏块,则生成新的写命令将写第一物理块的写命令指示的写入数据重新写入其他物理块。
9.一种控制部件,其特征在于,包括主机接口、命令处理单元、命令完成处理单元、命令队列;
主机接口与主机交换写命令和数据;
命令处理单元获取写命令,将写命令填充到同逻辑单元对应的命令队列中,并将写命令通过介质接口提供给非易失性存储器;
命令完成处理单元识别非易失性存储器处理写命令的处理结果;
若识别写第一物理块的写命令处理结果失败,则命令完成处理单元指示命令处理单元生成新的写命令以将所述写命令指示写入的数据重新写入其他物理块,并将第一物理块标记为坏块。
10.一种存储设备,其特征在于,包括控制部件与非易失存储介质,所述控制部件执行根据权利要求1-8之一所述的方法。
CN201910927447.6A 2019-09-27 2019-09-27 处理编程出错的方法与存储设备 Pending CN112579328A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910927447.6A CN112579328A (zh) 2019-09-27 2019-09-27 处理编程出错的方法与存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910927447.6A CN112579328A (zh) 2019-09-27 2019-09-27 处理编程出错的方法与存储设备

Publications (1)

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

Family

ID=75110132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910927447.6A Pending CN112579328A (zh) 2019-09-27 2019-09-27 处理编程出错的方法与存储设备

Country Status (1)

Country Link
CN (1) CN112579328A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637712A (zh) * 2022-03-18 2022-06-17 无锡众星微系统技术有限公司 一种EDFB模式下SAS2SATA Bridge的错误处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087950A1 (en) * 2009-10-12 2011-04-14 Phison Electronics Corp. Data writing method for a flash memory, and controller and storage system using the same
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备
CN109815157A (zh) * 2017-11-22 2019-05-28 北京忆芯科技有限公司 编程命令处理方法与装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087950A1 (en) * 2009-10-12 2011-04-14 Phison Electronics Corp. Data writing method for a flash memory, and controller and storage system using the same
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
CN109815157A (zh) * 2017-11-22 2019-05-28 北京忆芯科技有限公司 编程命令处理方法与装置
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637712A (zh) * 2022-03-18 2022-06-17 无锡众星微系统技术有限公司 一种EDFB模式下SAS2SATA Bridge的错误处理方法和装置

Similar Documents

Publication Publication Date Title
US10725835B2 (en) System and method for speculative execution of commands using a controller memory buffer
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
US8769232B2 (en) Non-volatile semiconductor memory module enabling out of order host command chunk media access
KR20190041331A (ko) 스토리지 장치, 컴퓨팅 시스템, 그리고 그것의 디버깅 방법
US10114743B2 (en) Memory erase management
US10740243B1 (en) Storage system and method for preventing head-of-line blocking in a completion path
US10635350B2 (en) Task tail abort for queued storage tasks
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
US20220138096A1 (en) Memory system
TW202028981A (zh) 資料儲存裝置及避免韌體失效之方法
US10649909B2 (en) Logical block addressing range collision crawler
CN108628760B (zh) 原子写命令的方法与装置
KR102620727B1 (ko) 전자 장치
CN111324414A (zh) Nvm存储介质模拟器
US11461238B2 (en) Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes
CN110865945B (zh) 存储设备的扩展地址空间
CN110515861B (zh) 处理刷写命令的存储设备及其方法
CN112579328A (zh) 处理编程出错的方法与存储设备
CN112578993A (zh) 多平面nvm处理编程出错的方法与存储设备
CN114968849B (zh) 提高编程缓存利用率的方法及其设备
CN114064522A (zh) 一种计算机
US11487439B1 (en) Utilizing host memory buffers for storage device recoveries
WO2018041258A1 (zh) 去分配命令处理的方法与存储设备
KR20180121733A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20240061614A1 (en) Error detection and correction in a controller

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
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.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210330