CN112181274B - 提升存储设备性能稳定性的大块的组织方法及其存储设备 - Google Patents
提升存储设备性能稳定性的大块的组织方法及其存储设备 Download PDFInfo
- Publication number
- CN112181274B CN112181274B CN201910585345.0A CN201910585345A CN112181274B CN 112181274 B CN112181274 B CN 112181274B CN 201910585345 A CN201910585345 A CN 201910585345A CN 112181274 B CN112181274 B CN 112181274B
- Authority
- CN
- China
- Prior art keywords
- offset value
- blocks
- block
- storage device
- chunk
- 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
Links
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了提升存储设备性能稳定性的大块的组织方法及其存储设备。所提供的构造大块的方法,包括:从多个逻辑单元的每个获取物理块来构造大块,其中每个逻辑单元为所构造大块提供的物理块位于逻辑单元的不同的位置。
Description
技术领域
本申请涉及存储设备,具体地,涉及在存储设备中通过更好的构造大块来提升存储设备性能的稳定性,并减少存储设备性能的抖动。
背景技术
图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也可以包括处理器(CPU)或者控制器,在处理器或控制器中执行软件来操纵控制部件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闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
大块包括来自多个逻辑单元(LUN),也称为逻辑单元组的每个的物理块。每个逻辑单元可以为大块提供一个物理块。例如,在图2所示出的大块的示意图中,在每16个逻辑单元(LUN)上构造大块。每个大块包括16个分别来自16个逻辑单元(LUN)的物理块。在图2的例子中,大块0包括来自16个逻辑单元(LUN)中的每个逻辑单元的物理块0,而大块2包括来自每个逻辑单元(LUN)的物理块2。也可以以多种其他方式来构造大块。图2中,用形如Ba-b的附图标记指示物理块,其中a指示该物理块由逻辑单元(LUNa)提供,而b指示该物理块在逻辑单元中的块号为b。大块存储用户数据与校验数据。根据大块存储的用户数据计算得到大块的校验数据。作为举例,在大块的最后一个物理块中存储校验数据。也可以选择大块的其他物理块来存储校验数据。作为又一个例子,在申请号为201710752321.0的中国专利申请的图3A及其说明书中对图3A的相关描述中,提供了大块的又一种构造方式。
发明内容
期待存储设备的性能是稳定的。但当存储设备的工作状态发生变化,性能波动在所难免。发明人发现,一个引起存储设备写性能波动的原因在于,大块之间的不一致。NVM芯片存在随机的故障物理块(简称“坏块”)是NVM芯片的固有属性。坏块的存在,导致各大块之间的可用物理块的数量存在差异。例如,一些大块上没有坏块或者仅有较少的坏块,而另一写大块上的坏块数量则较多。其上坏块的数量直接影响了大块的可用存储空间与可写入的数据量。并且大块需要预留指定大小的存储空间(例如,1个物理块)来存储校验数据,这使得大块之间,校验数据占大块的可用存储空间的比例也存在波动。没有坏块或者仅有较少的坏块的大块,其校验数据占大块可用存储空间的比例低,而有较多坏块的大块,其校验数据占大块的可用存储空间的比例高。
存储设备将数据写入NVM芯片时,以大块为单位分配存储空间。存储设备每次分配一个或指定数量的大块,向其写入数据,在分配的大块被写满数据后,再分配其他的大块来承载待写入的数据。分配大块引起额外的性能开销,并引起存储设备的写性能波动。大块的可用存储空间变化,使得分配大块的周期存在波动,也引起存储设备的写性能波动。向大块写入的用户数据与校验数据的比例发生变化,也引起存储设备写入用户数据的性能发生波动,校验数据的占比变高,导致用户数据的占比相对变低,即使存储设备的整体写入带宽恒定,用于写入用户数据的写带宽也相对变低(因为要写入相对更多的校验数据)。以及识别坏块并避免分配坏块来承载写入数据也消耗了存储设备的性能,并引起性能抖动。
NVM芯片的坏块分布的非均衡性进一步劣化了由于坏块所引起的性能波动。一些坏块是由于制造NVM芯片的掩模或使用掩模的光刻设备的缺陷所引入的。当相同的掩模被用于制造(光刻)多个NVM芯片时,掩模或制造相关的缺陷,使得NVM芯片的指定物理区域(例如对应于掩模边缘的区域)具有更高的坏块率,这些区域的物理块又具有相同的物理块号。这使得大块中的坏块数量的分布缺乏随机性。作为举例,制造过程引入的缺陷,导致位于特定位置的编号为700的物理块具有相对其他编号的物理块更高的错误率,这导致编号为700的大块,由于使用了来自各个LUN的编号为700的物理块,该编号为700的大块所拥有的坏块数量,大概率明显大于其他大块。进而,在向编号为700的大块写入数据之前、之中与之后的存储设备的写性能,发生较明显的抖动。
即使忽略掩模或制造相关的缺陷,假设NVM芯片上坏块的分布是均匀的。在由来自多个LUN的物理块构造大块后,大块的坏块数量,也呈现出高斯分布的统计特性而非均匀的。并导致在向各大块写入数据的过程中,存储设备的写性能发生波动。
根据本申请的实施例,使用了大块的组成方式,使用改进的方法来构造大块,使各大块的坏块数量尽量一致,以使存储设备的性能具有较高的稳定性,并减少性能的波动。
根据本申请的第一方面,提供了根据本申请第一方面的第一构造大块的方法,包括:从多个逻辑单元的每个获取物理块来构造大块,其中每个逻辑单元为所构造大块提供的物理块位于逻辑单元的不同的位置。
根据本申请第一方面的第一构造大块的方法,提供了根据本申请第一方面的第二构造大块的方法,其中要构造的大块具有编号i,为从编号为LN的逻辑单元为要构造的大块提供物理块,所述方法还包括:根据逻辑单元的编号LN获得偏移值off_LN;根据大块编号i与偏移值off_LN获得编号LN的逻辑单元提供给大块i的物理块的编号。
根据本申请第一方面的第二构造大块的方法,提供了根据本申请第一方面的第三构造大块的方法,其中所述偏移值是编号LN的函数,并且LN同所述偏移值是一一映射。
根据本申请第一方面的第二构造大块的方法,提供了根据本申请第四方面的第二构造大块的方法,其中使用编号LN查询偏移值表得到同编号LN对应的偏移值。
根据本申请第一方面的第四构造大块的方法,提供了根据本申请第一方面的第五构造大块的方法,还包括:在存储设备的生产过程中生成所述偏移值表,并将所述偏移值表记录在所述存储设备的非易失存储介质中。
根据本申请第一方面的第一至第三或第五构造大块的方法之一,提供了根据本申请第一方面的第六构造大块的方法,还包括:在存储设备的使用过程中,更新所述偏移值表。
根据本申请第一方面的第四至第六五构造大块的方法之一,提供了根据本申请第一方面的第七构造大块的方法,还包括:遍历偏移值表的各偏移值的多个或所有可能取值,选择偏移值表的各偏移值的取值,使得根据所选择的偏移值表构造的多个或所有大块的各个大块的坏块数的最大值最小,或使得根据所选择的偏移值表构造的多个或所有大块的各个大块的坏块数的最大值的方差最小。
根据本申请第一方面的第四至第六构造大块的方法之一,提供了根据本申请第一方面的第八构造大块的方法,还包括:遍历偏移值表的各偏移值的多个或所有可能取值,选择偏移值表的各偏移值的取值,使得根据所选择的偏移值表构造的多个或所有大块的各个大块的坏块数的最大值不超过阈值。
根据本申请第一方面的第七或第八构造大块的方法,提供了根据本申请第一方面的第九构造大块的方法,其中遍历偏移值表的各偏移值的多个或所有可能取值的次数不超过次数阈值。
根据本申请第一方面的第二构造大块的方法,提供了根据本申请第一方面的第十构造大块的方法,还包括:获取编号LN的逻辑单元提供给大块i的物理块的坏块数量;若累积的已被提供来用于构造大块i的物理块的坏块数量大于阈值,改变编号LN的逻辑单元的偏移值off_LN,根据大块编号i与偏移值off_LN获得编号LN的逻辑单元提供给大块i的物理块的编号。
根据本申请第一方面的第十构造大块的方法,提供了根据本申请第一方面的第十一构造大块的方法,其中改变编号LN的逻辑单元的偏移值off_LN,使得编号LN的逻辑单元提供给大块i的物理块不是坏块。
根据本申请第一方面的第八至第十一构造大块的方法之一,提供了根据本申请第一方面的第十二构造大块的方法,其中所述阈值是大块的平均坏块数。
根据本申请的第二方面,提供了根据本申请第二方面的存储设备,包括控制部件与非易失存储介质,所述控制部件执行根据本申请第一方面的第一至第十二构造大块的方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是相关技术中固态存储设备的框图;
图2展示了大块的示意图;
图3展示了大块的坏块分布的示意图;
图4展示了根据本申请的实施例的大块的组织的示意图;
图5展示了根据本申请的又一实施例的大块的组织的示意图;
图6展示了根据本申请实施例的寻找偏移值表的流程图;
图7展示了根据本申请实施例的应用偏移值表的流程图;以及
图8展示了根据本申请的依然再一实施例的构造大块的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3展示了大块的坏块分布的示意图。
根据图3的例子,在16个LUN上构造大块。每个LUN向编号为i的大块提供编号为i的物理块以构造大块。例如,大块0包括来自LUN 0-LUN 15的每个的编号为0的物理块。大块2包括来自LUN 0-LUN 15的每个的编号为2的物理块。由阴影指示的物理块是坏块。从而大块0有3个坏块,有13个可用的物理块;大块2有1个坏块,有15个可用的物理块。其他的大块也有各自的坏块数量。从而向大块0写入数据时,用于写入用户数据的带宽是总写入带宽的12/13;而向大块2写入数据时,用于写入用户数据的带宽是总写入带宽的14/15。这使得用户体验到的写入带宽存在抖动。
图4展示了根据本申请的实施例的大块的组织的示意图。
申请人意识到,各LUN的相同编号的物理块可能位于各LUN的相似或相同位置。例如,编号为0的物理块与编号最大的物理块可能各自位于芯片的边缘位置。从而各LUN的相同编号的物理块具有相似的成为坏块的几率。例如,位于边缘位置的物理块是坏块的几率高于位于中央位置的物理块。
根据本申请的实施例,在从各LUN选取构成大块的物理块时,避免各LUN向同一大块提供的物理块具有相同的编号。作为举例,为构造大块i(i为大块的编号),从各LUN选取的物理块是i以及提供物理块的LUN的编号(LN)的函数。作为举例,图4中,对于大块i,LUN 0为其提供的物理块的编号是i+0+1,LUN 1为其提供的物理块的编号是i+1+1,一般地,编号为LN的LUN为大块i提供的物理块编号是i+f(LN)。在图4的例子中,f(LN)=LN+1。
根据图4展示的大块的组织方式,各LUN为大块i提供的各物理块不再具有相同的物理块号,而是具有不同的物理块号,从而消除了相同大块号具有相似的称为坏块的几率给大块带来的坏块数量分布不均匀的问题。
在可选的实施方式中,f(LN)有其他的解析式,例如,f(LN)=LN<<2。选取f(LN)为一一映射,以避免将相同的物理块提供给多个大块。
图5展示了根据本申请的又一实施例的大块的组织的示意图。
根据图5的实施例,在从各LUN选取构成大块的物理块时,避免各LUN向同一大块提供的物理块具有相同的编号。为用于构造大块的各LUN设置偏移值(记为off_LN)。为大块提供物理块的LUN的数量一般是十几到几十个。使用例如偏移值表来记录用于各LUN的偏移值,根据LUN的编号LN查询偏移值表,得到为每个LUN设置的偏移值。
参看图5,用于编号为LN的LUN的偏移值记为off_LN。对于大块i,编号为LN的LUN为大块i提供的物理块编号为i+off_LN。从而当偏移值表中用于各LUN的偏移值彼此不同或不完全相同时,实现了避免将相同的物理块提供给多个大块的目的。
根据又一种实施方式,还寻找适当的偏移值表,以使得存储设备的多个或所有大块的最大坏块数量最小。例如,偏移值表的一个实例记为Toff_i,而偏移值表的实例最多有M种(Toff_i,i取1-M的整数),遍历偏移值表的所有可能取值,得到偏移值表的实例Toff_g,该实例相对于偏移值表的所有其他取值,使得存储设备的多个或所有大块的最大坏块数量最小。存储设备多个或所有大块的最大坏块数量,是这些大块的坏块数量的最大值。以及为减少寻找适当的偏移值表的复杂度,搜索偏移值表的多种可能取值,得到偏移值表的实例Toff_g1,该实例使得存储设备的多个或所有大块的最大坏块数量小于阈值。
根据再一种实施方式,还寻找适当的偏移值表,以使得存储设备的多个或所有大块的坏块数量的分布足够均匀,例如具有最小的方差或标准差。例如,遍历偏移值表的所有可能取值,得到偏移值表的实例Toff_g,该实例相对于偏移值表的所有其他取值,使得存储设备的多个或所有大块的坏块数量的方差或标准差最小。可选地,以及为减少寻找适当的偏移值表的复杂度,搜索偏移值表的多种可能取值,得到偏移值表的实例Toff_g1,该实例使得存储设备的多个或所有大块的坏块数量的方差或标准差小于阈值。
根据依然另一种实施方式,偏移值表被用随机数填充。
图6展示了根据本申请实施例的寻找偏移值表的流程图。
获取各LUN的坏块表(610)。坏块是NVM芯片的固有属性。存储设备记录其NVM芯片的各LUN的坏块表。可选地,通过遍历NVM芯片的各物理块,通过物理块中记录的标记来识别坏块,并在坏块表中记录各LUN的坏块的位置。依然可选地,存储设备还在运行中识别产生的坏块,并记录在坏块表。
设置用于构造大块的各LUN的偏移值(Off_LN)(620),得到偏移值表的一个实例。该实例是待搜索且未被搜索过的。
根据偏移值表的各LUN的偏移值构造大块(630)。并查询坏块表获得步骤630所构造的各大块的坏块数量(640)。步骤630中构造大块,可以是“虚拟”而非真实的构造大块。通过各LUN的偏移值,得到在根据偏移值表的当前实例下,如果构造大块,所得到的各大块的坏块数量。
根据步骤640中获得的各大块的坏块数量,得到根据偏移值表的当前实例,所有生成的大块的坏块数量的最大值(650)。
识别当前搜索偏移值表的次数是否达到阈值所指示的上限(660)。若搜索次数尚未达到上限,回到步骤620,重新设置用于构造大块的各LUN的偏移值(Off_LN)(620),得到偏移值表的待搜索且未被搜索过的另一个实例。
在步骤670,若搜索偏移值表的次数已达到阈值所指示的上限,获取在步骤650中已经得到的对应经搜索的各个偏移值表的所生成大块的坏块数量的最大值。选取使得对应经搜索的各个偏移值表的所生成大块的坏块数量的最大值取最小值的偏移值表(670),作为搜索出的适当的偏移值表。并根据该偏移值表来构造大块。
在另一种实施方式中,在步骤650,根据偏移值表的当前实例,计算所有生成的大块的坏块数量的方差或标准差。以搜索使得大块的坏块数量的方差或标准差最小或小于阈值的偏移值表。
图7展示了根据本申请实施例的应用偏移值表的流程图。
搜索适当的偏移值表是耗时的过程,会带来不利的用户体验。根据本申请的一种实施方式,在存储设备的制造工厂制造存储设备的过程中,将存储设备的各部件组装完成后,实施根据图6所示的对偏移值表的搜索过程,并将找到的偏移值表记录在存储设备的非易失存储介质中(710)。
用户首次使用存储设备时,或者对存储设备格式化后,为构造大块,存储设备获取记录在非易失存储介质中的在步骤710所找到的偏移值表,被使用该偏移值表来构造大块(720),例如,用根据图5的实施例的方式来使用偏移值表构造大块。
步骤710的操作可以在存储设备之外实施。例如在连接到存储设备的存储设备的生产线上的计算机或服务器中实施根据图6所示的对偏移值表的搜索过程。通过在存储设备之外生成存储设备要使用的偏移值表,无需在存储设备中实现复杂的偏移值表搜索,减轻了存储设备的工作负担,降低了存储设备的成本,降低了存储设备的固件开发的复杂度。
可选地,在存储设备的使用过程中,由于新产生了坏块等原因,使得步骤720所使用的偏移值表不再是最优,还重新搜索最佳的偏移值表,并使用新的偏移值表来构造大块。
图8展示了根据本申请的依然再一实施例的构造大块的流程图。
存储设备的NVM芯片的坏块数量是已知的,代表了NVM芯片的质量。从而存储设备的大块的坏块的平均值是可预期的。例如,NVM芯片包括5%的坏块,从而在每个大块包括31个物理块的情况下,大块的坏块数量的预期为1-2个(平均值1.55个)。根据大块的预期坏块数量,提出如图8展示的实施例。
为构建一个大块(大块i),依次从各个LUN选取物理块提供给大块i,对于编号为LN的LUN,还获取该LUN的偏移值off_LN(810)。作为举例,偏移值off_LN为固定值0,或者采用本申请中结合图4描述的多种实施方式中的计算偏移值off_LN的方式(f(LN))。依然作为举例,编号为LUN的LUN提供给大块i的物理块的编号为i+f(LN)。
对于编号为LN的LUN,还获取其坏块表,从而知晓其提供给大块i的编号为i+f(LN)的物理块是否为坏块(820)。可选地,一些情况下,各LUN提供给大块的物理块数量大于1,还识别编号为LN的LUN提供给大块i的物理块中坏块的数量。依然可选地,通过扫描物理块来识别该物理块是否为坏块。
对于大块i,累积各LUN为大块i提供的坏块数量,以识别大块i的坏块数量是否超出阈值(830)。作为举例,由于大块的坏块数量阈值为1-2个,将阈值设置为2。若大块i的累积的坏块数量未超出阈值(830),返回步骤810,以获取为大块i提供物理块的下一LUN及其偏移值。在步骤830,若识别出大块i累积的坏块数量超出了阈值,则从当前LUN(编号为LN)选择其他的物理块(具有不同的偏移值)提供给大块i(840)。例如,使偏移值off_LN更新为f(LN)+1。以及返回步骤820,以重新获取新的偏移值对应的当前LUN提供给大块i的坏块数量,并继续图8展示的流程。
依然作为举例,在步骤840所重新选择的物理块为当前LUN的非坏块,并记录其偏移值,用来替代之前的偏移值off_LN。以及返回步骤810,来从下一个LUN为大块i获取物理块。
根据本申请的实施例还提供了一种存储设备,该设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种处理方法。
根据本申请的实施例还提供了一种存储在可读介质上的程序,当被存储设备的控制器运行时,使得存储设备执行根据本申请实施例提供的任意一种处理方法。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (7)
1.一种构造大块的方法,包括:
从多个逻辑单元的每个获取物理块来构造大块,其中每个逻辑单元为所构造大块提供的物理块位于逻辑单元的不同的位置;
其中要构造的大块具有编号i,从编号为LN的逻辑单元为要构造的大块提供物理块,所述方法还包括:
根据逻辑单元的编号LN获得偏移值off_LN;
根据大块编号i与偏移值off_LN获得编号LN的逻辑单元提供给大块i的物理块的编号;
遍历偏移值表的各偏移值的多个或所有可能取值,选择偏移值表的各偏移值的取值,使得根据所选择的偏移值构造的多个或所有大块的各个大块的坏块数的最大值最小,或使得根据所选择的偏移值构造的多个或所有大块的各个大块的坏块数的最大值的方差最小,或使得根据所选择的偏移值构造的多个或所有大块的各个大块的坏块数的最大值不超过阈值。
2.根据权利要求1所述的方法,其中
所述偏移值是编号LN的函数,并且LN同所述偏移值是一一映射。
3.根据权利要求1所述的方法,其中
使用编号LN查询偏移值表得到同编号LN对应的偏移值。
4.根据权利要求3所述的方法,还包括:
在存储设备的生产过程中生成所述偏移值表,并将所述偏移值表记录在所述存储设备的非易失存储介质中。
5.根据权利要求1所述的方法,其中
遍历偏移值表的各偏移值的多个或所有可能取值的次数不超过次数阈值。
6.根据权利要求1所述的方法,还包括:
获取编号LN的逻辑单元提供给大块i的物理块的坏块数量;
若累积的已被提供来用于构造大块i的物理块的坏块数量大于阈值,改变编号LN的逻辑单元的偏移值off_LN,根据大块编号i与偏移值off_LN获得编号LN的逻辑单元提供给大块i的物理块的编号。
7.一种存储设备,包括控制部件与非易失存储介质,所述控制部件执行根据权利要求1-6之一所述的构造大块的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910585345.0A CN112181274B (zh) | 2019-07-01 | 2019-07-01 | 提升存储设备性能稳定性的大块的组织方法及其存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910585345.0A CN112181274B (zh) | 2019-07-01 | 2019-07-01 | 提升存储设备性能稳定性的大块的组织方法及其存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181274A CN112181274A (zh) | 2021-01-05 |
CN112181274B true CN112181274B (zh) | 2023-06-20 |
Family
ID=73914779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910585345.0A Active CN112181274B (zh) | 2019-07-01 | 2019-07-01 | 提升存储设备性能稳定性的大块的组织方法及其存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181274B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181276B (zh) * | 2019-07-03 | 2023-06-20 | 北京忆恒创源科技股份有限公司 | 提升存储设备服务质量的大块构造、分配方法及其存储设备 |
CN116048427B (zh) * | 2023-03-31 | 2023-06-20 | 北京忆恒创源科技股份有限公司 | 一种管理ssd闪存资源的方法及存储设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776359A (zh) * | 2016-11-11 | 2017-05-31 | 上海航天测控通信研究所 | 一种NAND Flash坏块管理方法及系统 |
CN107844266A (zh) * | 2016-09-19 | 2018-03-27 | 芬基波尔有限责任公司 | 使用映射表的缓冲区分配和存储器管理 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703706B2 (en) * | 2011-02-28 | 2017-07-11 | Oracle International Corporation | Universal cache management system |
US10044374B2 (en) * | 2015-07-30 | 2018-08-07 | Quantum Corporation | Adaptive erasure codes |
CN107807788B (zh) * | 2016-09-09 | 2021-06-15 | 北京忆恒创源科技有限公司 | 块条带构造方法、构造装置及固态存储设备 |
JP6253752B1 (ja) * | 2016-11-29 | 2017-12-27 | 株式会社東芝 | 階層化ストレージシステム |
CN109426436B (zh) * | 2017-08-28 | 2024-04-12 | 北京忆恒创源科技股份有限公司 | 基于可变长大块的垃圾回收方法与装置 |
CN207676335U (zh) * | 2017-11-13 | 2018-07-31 | 北京忆恒创源科技有限公司 | 具有非对称通道的固态存储设备 |
-
2019
- 2019-07-01 CN CN201910585345.0A patent/CN112181274B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844266A (zh) * | 2016-09-19 | 2018-03-27 | 芬基波尔有限责任公司 | 使用映射表的缓冲区分配和存储器管理 |
CN106776359A (zh) * | 2016-11-11 | 2017-05-31 | 上海航天测控通信研究所 | 一种NAND Flash坏块管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112181274A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210182166A1 (en) | Zoned namespace management of non-volatile storage devices | |
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
US11030094B2 (en) | Apparatus and method for performing garbage collection by predicting required time | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US20190294339A1 (en) | Data Storage System Scale-Out with Local Address Remapping | |
US10877900B1 (en) | Enabling faster and regulated device initialization times | |
US11513948B2 (en) | Controller and memory system | |
US10997080B1 (en) | Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
US10998041B1 (en) | Calibrating non-volatile memory read thresholds | |
US11334272B2 (en) | Memory system and operating method thereof | |
US20220004336A1 (en) | Detecting last page written in multi-plane non-volatile memory | |
US11513950B2 (en) | Wear leveling in non-volatile memory | |
US20200242038A1 (en) | System and method for configuring a storage devcie based on prediction of host source | |
CN112181274B (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 | |
CN110554833B (zh) | 存储设备中并行处理io命令 | |
CN108628762B (zh) | 一种固态存储设备及其处理io命令的方法 | |
CN108614671B (zh) | 基于命名空间的键-数据访问方法与固态存储设备 | |
CN110865945B (zh) | 存储设备的扩展地址空间 | |
CN110096452B (zh) | 非易失随机访问存储器及其提供方法 | |
CN112181276B (zh) | 提升存储设备服务质量的大块构造、分配方法及其存储设备 | |
US11182329B2 (en) | Data processing system and operating method thereof | |
CN110688056B (zh) | Nvm组的存储介质替换 | |
CN110297596B (zh) | 具有宽工作温度范围的存储设备 | |
CN111831577A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |