CN113312276B - 用于动态磨损均衡和负载重定向的方法和固态驱动器系统 - Google Patents

用于动态磨损均衡和负载重定向的方法和固态驱动器系统 Download PDF

Info

Publication number
CN113312276B
CN113312276B CN202110116013.5A CN202110116013A CN113312276B CN 113312276 B CN113312276 B CN 113312276B CN 202110116013 A CN202110116013 A CN 202110116013A CN 113312276 B CN113312276 B CN 113312276B
Authority
CN
China
Prior art keywords
block
target block
ssd
controller
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.)
Active
Application number
CN202110116013.5A
Other languages
English (en)
Other versions
CN113312276A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113312276A publication Critical patent/CN113312276A/zh
Application granted granted Critical
Publication of CN113312276B publication Critical patent/CN113312276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7211Wear leveling

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

公开了用于动态磨损均衡和负载重定向的方法和固态驱动器系统。在一种包括一个或多个块的固态驱动器(SSD)中的用于动态磨损均衡和负载重定向的方法中,所述方法包括:由控制器接收写入数据的请求;由控制器计算所述一个或多个块的易损性因子;由控制器从所述一个或多个块中选择用于接收写入数据的请求的目标块;由控制器基于目标块的易损性因子来确定目标块的状态;由控制器基于目标块的状态将数据写入目标块;以及由控制器基于写入到目标块的数据来更新映射表。

Description

用于动态磨损均衡和负载重定向的方法和固态驱动器系统
本申请要求于2020年2月7日提交的名称为“基于SSD块级故障预测的动态负载重定向和磨损均衡(DYNAMIC LOAD REDIRECTION AND WEAR-LEVELING BASED ON SSD BLOCK-LEVEL FAILURE PREDICTION)”的第62/971,773号美国临时专利申请的优先权和权益,其全部内容通过引用包含于此。本申请还涉及于2019年12月2日提交的名称为“基于固件的SSD块故障预测和规避方案(FIRMWARE-BASED SSD BLOCK FAILURE PREDICTION ANDAVOIDANCE SCHEME)”的第16/701,133号美国专利申请,其全部内容通过引用包含于此。
技术领域
根据本公开的实施例的一个或多个方面涉及用于存储装置块级故障预测的系统和方法。
背景技术
计算机存储器系统可包括大量存储装置,诸如,固态驱动器(SSD)。存储器系统内的每个SSD可包含多个闪存芯片,其中,每个闪存芯片包含多个块,并且每个块包含多个页。页可以是几千字节,并且是用于从SSD读取数据和向SSD写入数据的最小单位。
在本背景技术部分中公开的上述信息仅用于增强对本公开的背景技术的理解,因此,它可包含不形成现有技术的信息。
发明内容
本公开的实施例的各方面涉及用于存储装置块级故障预测的系统和方法。
根据本公开的一些示例实施例,在一种包括一个或多个块的固态驱动器(SSD)中的用于动态磨损均衡和负载重定向的方法中,所述方法包括:由控制器接收写入数据的请求;由控制器计算所述一个或多个块的易损性因子;由控制器从所述一个或多个块选择目标块以接收写入数据的请求;由控制器基于目标块的易损性因子来确定目标块的状态;由控制器基于目标块的状态将数据写入目标块;以及由控制器基于写入到目标块的数据来更新映射表。
根据一些示例实施例,所述方法还包括:当目标块的易损性因子大于预定阈值时,由控制器将数据写入副本块。
根据一些示例实施例,所述状态包括:健康状态、易受损状态或退役状态中的至少一个。
根据一些示例实施例,映射表包括将写入到目标块的数据的逻辑页号映射到写入到目标块的数据的物理页号的表。
根据一些示例实施例,基于目标块的易损性因子来选择目标块。
根据一些示例实施例,选择具有最小易损性因子的目标块。
根据一些示例实施例,使用从块级元数据生成的第一组参数和从驱动器级元数据生成的第二组参数来计算易损性因子。
根据一些示例实施例,块级元数据包括读取错误、写入错误或擦除错误中的至少一个。
根据一些示例实施例,驱动器级元数据包括页标识、块标识、时间戳、基于块的错误和驱动器日志数据中的一个或多个。
根据本公开的一些示例实施例,在包括控制器和一个或多个块的固态驱动器(SSD)系统中,其中,控制器被配置为:接收写入数据的请求;计算所述一个或多个块的易损性因子;从所述一个或多个块选择目标块以接收写入数据的请求;基于目标块的易损性因子来确定目标块的状态;基于目标块的状态将数据写入目标块;以及基于写入到目标块的数据来更新映射表。
根据一些示例实施例,控制器还被配置为:当目标块的易损性因子大于预定阈值时,将数据写入副本块。
根据一些示例实施例,所述状态包括:健康状态、易受损状态和退役状态中的至少一个。
根据一些示例实施例,基于目标块的易损性因子来选择目标块。
根据一些示例实施例,选择具有最小易损性因子的目标块。
根据一些示例实施例,使用从块级元数据生成的第一组参数和从驱动器级元数据生成的第二组参数来计算易损性因子。
根据一些示例实施例,块级元数据包括读取错误、写入错误或擦除错误中的至少一个。
根据一些示例实施例,驱动器级元数据包括页标识、块标识、时间戳、基于块的错误和驱动器日志数据中的一个或多个。
根据本公开的一些示例实施例,在一种包括一个或多个存储器装置的存储器系统内的用于动态磨损均衡和负载重定向的方法中,所述方法包括:由控制器接收写入数据的请求;由控制器计算所述一个或多个存储器装置的易损性因子;由控制器基于目标装置的易损性因子从所述一个或多个存储器装置选择目标装置以接收写入数据的请求;以及由控制器将写入数据的请求定向到目标装置。
根据一些示例实施例,所述一个或多个存储器装置包括一个或多个闪存芯片。
根据一些示例实施例,所述一个或多个闪存芯片的易损性因子等于所述一个或多个闪存芯片内的所有块的总和。
根据一些示例实施例,选择具有最小易损性因子的闪存芯片作为目标闪存芯片。
根据一些示例实施例,所述一个或多个存储器装置包括一个或多个SSD。
根据一些示例实施例,所述一个或多个SSD的易损性因子等于一个或多个SSD内的所有闪存芯片的总和。
根据一些示例实施例,选择具有最小易损性因子的SSD作为目标SSD。
附图说明
图1示出根据公开的示例实施例的具有多个存储装置的存储器系统的映像。
图2示出根据公开的示例实施例的预测SSD内的块是否将发生故障的方法的流程图。
图3是示出根据公开的示例实施例的用于在SSD内的块上分配负载的方法的流程图。
图4显示根据公开的示例实施例的LTP表和PTL表。
图5是示出根据公开的示例实施例的在块级、芯片级和装置级跟踪的元数据的图表。
图6是示出根据公开的示例实施例的用于在存储器系统内的存储器装置上分配负载的方法的流程图。
具体实施方式
随着时间的推移,SSD中的块内的页可磨损并变得易于发生故障。现场中的SSD故障可导致服务器关闭,并且因此损害数据中心规模的应用的性能和可用性。为了减少和/或防止这样的意外故障,采用SSD的系统可使用简单的基于阈值的模型通过在驱动器故障之前替换驱动器来避免故障。这样的保护机制可导致高程度的错误警报,或者可能无法预测/避免所有的SSD故障。此外,在识别到物理错误的情况下,SSD可能无法从中恢复并且因此避免进一步的装置故障。另外,SSD中的频繁错误可通过SSD内的几个故障页引起。
根据一些示例实施例,存储器系统可利用块级故障预测模块的结果来重定向和动态地调整(tune)存储器系统中的多个固态驱动器(SSD)装置上的负载。这个方法可延长SSD的寿命并更好地利用可用的容量。
根据各种实施例,本公开可包括用于在存储器系统中的SSD内的块上成比例地复制和重定向数据(即,负载)的机制。该机制可根据块的易损性因子(vulnerabilityfactor)将负载分配给块。易损性因子可表示块可能发生故障的概率,该概率可使用故障预测模块来计算。作为示例,具有较低易损性因子的块可能不太会发生故障,而具有较高易损性因子的块更可能发生故障。在一些实施例中,负载可以以具有较低易损性因子的块为目标。在一些实施例中,被写入具有较高易损性因子的块(即,具有大于预定阈值的易损性因子的块)的数据可被复制在另一块上,以防止在未来故障中数据的丢失。在写入数据之后,对应的映射表可被更新,对应的映射表可包括逻辑页号(LPN)到物理页号(PPN)表(即,LTP表)和PPN到LPN表(即,PTL表)。
根据各种实施例,本公开还涉及用于在SSD内的闪存芯片上以及在存储器系统内的SSD上分配负载的机制(例如,磨损均衡(wear-levelling)算法)。闪存芯片可具有易损性因子,该易损性因子被定义为闪存芯片内的每个块的易损性因子的总和。可根据闪存芯片的易损性因子将负载分配给闪存芯片。例如,负载可被定向到具有落在预定范围内的易损性因子的闪存芯片。类似地,SSD可具有易损性因子,该易损性因子被定义为SSD内的每个闪存芯片的易损性因子的总和。可根据SSD的易损性因子将负载分配给SSD。例如,负载可被定向到具有落在预定范围内的易损性因子的SSD。
所公开的实施例可帮助减少更易受损的块上的磨损并增加块和SSD的寿命。另外,所公开的实施例可提供以下优点:
基于SSD驱动器的易损性因子将负载分配给每个SSD驱动器;
基于被预测为“出现故障”的块的数量将负载分配给每个SSD驱动器;
基于预测模块的置信度将负载分配给每个SSD驱动器;
当装置被识别/预测为易受损的时,提高装置寿命和可靠性以更好地使用该装置。
图1示出根据公开的示例实施例的具有多个存储装置的存储器系统的映像。
根据图1,存储器系统100可包括多个存储装置110。在一些实施例中,存储装置110可包括SSD 110。如图1中所示,SSD 110可具有多个存储级别。作为示例,每个SSD 110包括多个闪存芯片111(例如,CHIP1、CHIP2、……CHIP12),每个闪存芯片111包含多个块112(例如,块1、……、块n,其中,n是大于1的正整数),并且每个块包含多个页113(例如,页1、……、页k,其中,k是大于1的正整数)。页113可以是几千字节,并且可以是用于从SSD 110读取数据和写入数据的最小单位。
在一些实施例中,SSD 110可包括嵌入式控制器114(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、处理器等)。在其他实施例中,控制器114可在SSD 110的外部。SSD控制器114可包括逻辑电路,该逻辑电路用于服务读取和写入请求、运行磨损均衡算法以及运行错误恢复过程。在一些实施例中,由SSD控制器114执行的处理可使用任何合适的固件(即,专用集成电路)来实现。此外,页113可包括SSD控制器114用来恢复和修复有限数量的位错误的纠错码(ECC)元数据。
根据一个实施例,控制器114可向闪存芯片111内的块112发送请求。该请求可以是读取存储在块112内的页113中的数据(即,读取请求),或者该请求可以是在块112内的页113上写入新数据(即,写入请求)。如果请求以块112内的故障页113为目标,则该请求可频繁失败。此外,如果由于硬件故障引起的位错误的数量超过特定数量(例如,阈值数量),则SSD控制器114可能无法纠正位错误并且可将损坏的数据提供给主机。
在特定数量的重复的故障之后,系统管理员可选择替换存储器系统100内的SSD110,这可增加运行和维护存储器系统100的成本,并且还可由于随之发生的服务器关闭而损害应用的性能和可用性。另一方面,当向页113进行写入(即,编程操作)时,如果发生错误,则页113可被标记为发生故障并且可能不被再次使用。一旦块112中的特定数量的页113被确定为发生故障,则整个块112被退役(retire)。SSD 110可保留一些备用块112以替换这样的撤销块112。如果SSD 110在可用的备用块的数量上不足(例如,使用超过90%的备用块),则SSD 110可需要被替换。
在一些实施例中,代替替换SSD 110,细粒度(fine-grained)块故障预测可提前退役故障块以防止未来故障。然而,在块级预测细粒度误差是不可行的。用于预测块级错误的处理可需要SSD内的各个块的相对大量的历史数据。因为SSD可具有数十万个块,所以该处理可需要处理和分析SSD内的大数据集。因为SSD具有有限的计算和处理能力,所以这可能是有问题的。另外,存储数据集可占用SSD上的宝贵的存储空间。
在一些实施例中,可使用块故障预测方法来识别可能发生故障的块112并退役那些块112以防止未来错误。为此,所公开的系统包括固件级故障预测技术,该固件级故障预测技术利用物理错误中的局部性,并且将块级信息和装置级信息进行组合以生成一组参数/预测符并将其馈送到运行机器学习(ML)模块以预测故障的预测模块。基于预测模块的输出,如果块112被识别为未来故障,则块112可被退役。
图2示出根据本公开的示例实施例的预测SSD内的块是否将发生故障的方法的流程图。根据一些示例实施例,图2中所示的操作的数量和顺序可变化。例如,根据一些示例实施例,除非另有说明或相反暗示,否则可存在更少或附加的操作。另外,除非另有说明或相反暗示,否则操作的顺序可变化。在一些实施例中,可使用任何合适的固件来实现图2中所示的操作。
参照图2,在210,可从可用的基于驱动器的日志数据提取块级数据,以构建可疑块(suspected block)的一组参数(即,块级参数)。可疑块可以是经常发生故障并且在未来可能发生故障的块。在一些示例中,提取的块级数据可包括读取错误、写入错误或擦除错误。在一些实施例中,因为参数基于直接从可疑块提取的数据,所以块级参数可提供可疑块的状况的精确测量。在205中,所公开的系统还可提取SSD级数据以生成可疑块的另一组参数(即,驱动器级参数)。提取的SSD级数据可包括页/块标识(即ID)、时间戳、基于块的读取/写入/擦除错误和驱动器日志数据。在一些实施例中,因为驱动器级参数是从SSD级数据得到,所以驱动器级参数可提供可疑块的状况的近似测量,该SSD级数据可在SSD中的所有块上进行平均。在210中生成的块级参数(例如,S_Block_Precise)和205中生成的驱动器级参数(例如,S_Block_Approx)被传送到故障预测模块。在215中,故障预测模块可运行机器学习(ML)模块,该机器学习(ML)模块使用块级参数和驱动器级参数来确定块将发生故障的概率(即,块的易损性因子)。ML模块可使用逻辑回归和随机森林,但不限于此。在220中,控制器通过将由故障预测模块计算的易损性因子与预定阈值进行比较来确定该块是否将发生故障。如果易损性因子大于阈值,则在225中预测该块将发生故障,并且该块将不再被使用(即,退役块)。如果概率小于或等于阈值,则预测该块不会发生故障,并且该块可被继续使用。
然而,基于阈值退役易受损块可能不是有效的。退役块可防止易受损块的任何进一步使用,并且在错误预测的情况下,退役块可导致容量的浪费。
代替简单地退役易受损块,通过向这些块分配与它们的易损性因子成比例的工作负载,仍然可使用这些块。为此,易损性因子可用于对SSD内的块(即,状态)进行分类。例如,状态可包括但不限于健康的、易受损的或退役的。具有易损性因子为零的块在未来不会被故障预测模块预测为发生故障,并且可被识别为健康块(即,健康状态)。具有易损性因子为1的块已经达到P/E周期寿命的终点,或者具有已经发生故障的特定数量的页并且可被识别为退役块(即,退役状态)。具有零和一之间的易损性因子的块被故障预测模块预测为可能发生故障,并且可被识别为易受损的(即,易受损状态)。易损性因子也可定义如下:
Vulnerability_Factor表示易损性因子。在各种实施例中,可基于块的易损性因子(例如,经由磨损均衡算法)将工作负载分配给块。在各种实施例中,可首先以具有较低易损性因子并且因此不太可能发生故障的那些块为目标。另外,易损性因子可用于确定是否将特定块用于写入请求。因为数据可能在未来故障中丢失,所以具有较高故障概率的易受损块对于写入请求可能不是理想的。这种方法可隐含地减少更易受损的块的使用。在一些实施例中,如果数据被写入具有大于预定阈值的易损性因子的易受损块,则数据也可被写入副本块。复制可帮助防止来自易受损块的未来故障的数据丢失。此外,易损性因子可用于确定要复制多少易受损块的内容。这种方法可通过限制副本块上的复制所需的空间量来创建更有效的复制机制。通过限制将要从易受损块复制的数据量,与复制易受损块的整个内容相比,可更少地使用副本块。因此,较少使用副本块可减少副本块的磨损。
图3是示出根据公开的示例实施例的用于在SSD内的块上分配负载的方法的流程图。根据一些示例实施例,图3中所示的操作的数量和顺序可变化。例如,根据一些示例实施例,除非另有说明或相反暗示,否则可存在更少或附加的操作。另外,除非另有说明或相反暗示,否则操作的顺序可变化。在一些实施例中,可使用任何合适的固件来实现图3中所示的操作。
参照图3,在305,SSD接收请求。该请求可以是读取请求或写入请求。在310中,确定该请求是否是读取请求。如果该请求是读取请求,则该方法进行到315。在315中,检查LTP表以识别数据的PPN并读取在PPN的数据。在一些实施例中,请求的数据可被存储在多于一个块上。例如,数据可被存储在原始块上和任何副本块上。因此,LPN可对应于多于一个PPN。如果原始块上的数据被破坏,则副本块上的数据仍然可被恢复。
如果在310中确定该请求不是读取请求,则该方法可进行到320。在320中,可选择块(即,目标块)来接收数据。在一些实施例中,可根据目标块的易损性因子来选择目标块。例如,可选择具有最小易损性因子的块作为目标块。在325中,确定目标块是否是易受损的。易受损块可包括具有大于零但小于一的易损性因子的块。如果目标块的状态不是易受损的,则该方法可进行到335。在335中,可选择目标块的PPN来写入数据,并且可更新映射表(即,LTP表或PTL表)。
如果在325中确定目标块是易受损的,则该方法可进行到330。在330中,可确定目标块的易损性因子,并且该方法可进行到340。在340中,可将目标块的易损性因子与预定阈值(例如,α)进行比较。如果易损性因子大于预定阈值,则处理可进行到345。在345中,可选择目标块的PPN,并且可在选择的PPN写入数据。还可将数据的副本写入副本块上,并且可更新映射表。如果在340中易损性因子小于或等于预定阈值,则该方法可进行到350。在350中,可选择目标块的PPN,并且可将数据写入选择的PPN而无需复制。还可更新映射表。
图4显示根据公开的示例实施例的LTP表和PTL表。
参照图4,SSD可具有两个映射表:LTP表410和PTL表420。LTP表410将逻辑页号映射到物理页号。如LTP表410中所示,每个LPN对应于PPN。例如,LPN 0对应于PPN 0。在一些实施例中,数据可被复制并且可被存储在多个PPN:在原始块的一个PPN以及在副本块上的另外的PPN。因此,LPN可对应于多于一个PPN。例如,因为在PPN 1的数据在PPN 3被复制,所以LPN1对应于PPN 1和PPN 3。
根据图4,PTL表420将物理页号(PPN)映射到逻辑页号(LPN)。如PTL表420中所示,每个PPN对应于LPN。例如,PPN 0对应于LPN 0。在一些实施例中,多于一个PPN可对应于同一LPN。例如,因为在PPN 1的数据在PPN3被复制,所以PPN 1和PPN 3二者对应于LPN 1。在LTP表410和PTL表420二者中,给定LPN的PPN列表被保持。
在读取请求期间,可通过访问LTP表410来检索所请求的数据的PPN。使用PPN,所请求的数据被访问和读取。在一些实施例中,在原始PPN的数据可被破坏,并且数据可从副本PPN被检索。在写入请求期间,选择PPN用于写入数据。新条目被添加到LTP表410。如果需要复制数据,则副本PPN还被添加到LTP表的对应的LPN的同一条目。作为示例,因为在PPN 1的数据在PPN 3被复制,所以LTP表410的LPN 1对应于PPN 1和PPN3。当更新LPN时,可在LTP表410上使对应的PPN无效。在垃圾收集期间,如果PPN被移动,则从PTL表420中定位PPN的对应的LPN。随后,可在LTP表410中更新对应的LPN的PPN列表。
除了识别块的易损性因子之外,还可在闪存芯片级确定易损性因子(例如,芯片易损性因子)并在SSD级确定易损性因子(例如,SSD易损性因子)。闪存芯片的易损性因子被定义为闪存芯片中的每个块的易损性因子的总和,如下所示:
N:闪存芯片中的块的数量
VulnerabilityFactori:块i的易损性因子
CHIP_VUL_FACTOR:闪存芯片的易损性因子
当将写入请求(即,负载)分配给闪存芯片时,固件确定与1/CHIP_VUL_FACTOR成比例的目标闪存芯片。因此,具有较高数量的易受损的/发生故障的块的闪存芯片可获得较少的请求。
类似地,SSD的易损性因子可被定义为SSD中的每个闪存芯片的芯片易损性因子的总和,如下所示:
K:SSD内部的闪存芯片的数量
CHIP_VUL_FACTORi:闪存芯片i的易损性因子
SSD_VUL_FACTOR:SSD的易损性因子当将负载分配给每个SSD时,根据SSD易损性因子将负载分配给SSD。例如,可将负载分配给具有最小SSD易损性因子的SSD。
图5是示出根据公开的示例实施例的在块级、芯片级和装置级跟踪的元数据的图表。
参照图5,装置固件保持块级元数据510和芯片级元数据520。装置级元数据530被保持在系统级。块级元数据510可包括每个单独的块的易损性因子。芯片级元数据520可包括每个单独的闪存芯片的易损性因子。装置级元数据530可包括存储器系统中的每个单独的SSD的易损性因子。
因此,如图5中所示,因为块级、芯片级和装置级元数据均可被保持,所以本公开的实施例可在各种抽象级(例如,在块级、在芯片级或在装置(即,单独的SSD)级)实现。例如,可计算每个闪存芯片的易损性因子。芯片易损性因子可被定义为芯片内的每个块的易损性因子的总和。在一些实施例中,可根据芯片的易损性因子,将工作负载定向到闪存芯片。
此外,还可计算每个SSD的易损性因子。SSD易损性因子可被定义为SSD内的每个闪存芯片的易损性因子的总和。在一些实施例中,可根据SSD的易损性因子将工作负载定向到SSD。
此外,还可计算块内的每个页的易损性因子。在一些实施例中,可根据页的易损性因子将工作负载定向到页。
图6是示出根据公开的示例实施例的用于在存储器系统内的存储器装置上分配负载的方法的流程图。根据一些示例实施例,图6中所示的操作的数量和顺序可变化。例如,根据一些示例实施例,除非另有说明或相反暗示,否则可存在更少或附加的操作。另外,除非另有说明或相反暗示,否则操作的顺序可变化。在一些实施例中,可使用任何合适的固件来实现图6中所示的操作。
参照图6,在610中,存储器系统可接收将数据写入存储器装置的请求。在各种实施例中,存储器装置可包括页、块、闪存芯片或SSD。在620中,控制器(即,固件)可计算存储器系统中的每个存储器装置的易损性因子。在一些实施例中,可使用故障预测模块来计算块的易损性因子。在一些实施例中,闪存芯片的易损性因子可等于闪存芯片中的块的易损性因子的总和。在一些实施例中,SSD的易损性因子可等于SSD中的闪存芯片的易损性因子的总和。
在630中,可根据存储器装置的易损性因子来选择存储器装置以用于写入数据。在一些实施例中,可选择具有最小易损性因子的存储器装置(即,最不易受损的存储器装置)以用于写入数据。在640中,可将写入数据请求定向到选择的存储器装置。
根据在此描述的本发明的实施例的电子或电气装置和/或任何其他相关装置或组件可利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的组合来实现。例如,这些装置的各种组件可形成在一个集成电路(IC)芯片上或分离的IC芯片上。此外,这些装置的各种组件可在柔性印刷电路膜、载带封装(TCP)、印刷电路板(PCB)上实现,或者形成在一个基板上。此外,这些装置的各种组件可以是在一个或多个计算装置中的一个或多个处理器上运行的、执行计算机程序指令并与其他系统组件交互以执行在此描述的各种功能的进程或线程。计算机程序指令被存储在存储器中,其中,存储器可使用标准存储器装置(诸如,以随机存取存储器(RAM)为例)在计算装置中实现。计算机程序指令还可被存储在其他非暂时性计算机可读介质(诸如,以CD-ROM、闪存驱动器等为例)中。
通过参照前述实施例的详细描述和附图,可更容易地理解发明构思的特征和实现发明构思的方法。参照附图更详细地描述了前述实施例,其中,相同的参考标号始终表示相同的元件。然而,本公开可以以各种不同的形式实现,并且不应被解释为仅限于在此示出的实施例。相反,这些实施例被提供为示例,使得本公开将是彻底的和完整的,并且将向本领域技术人员充分传达本公开的方面和特征。因此,可能未描述本领域的普通技术人员不必要的用于完整理解本公开的实施例的方面和特征的处理、元件和技术。除非另有指出,否则贯穿附图和书面描述,相同的参考标号表示相同的元件,因此,将不重复其描述。在附图中,为了清楚起见,元件、层和区域的相对尺寸可被夸大。
在前面的描述中,出于解释的目的,阐述了许多具体细节以提供对各种实施例的彻底理解。然而,清楚的是,可在没有这些具体细节或具有一个或多个等效布置的情况下来实践各种实施例。此外,本领域普通技术人员将理解,在不脱离本公开的精神或范围的情况下,在此描述的两个或更多个实施例的各种特征可以以任何合适的方式组合。在其他实例中,公知结构和装置以框图形式示出,以避免不必要地使各种实施例模糊。
应理解,当元件、层、区域或组件被称为“在”另一元件、层、区域或组件“上”、“连接到”或者“结合到”另一元件、层、区域或组件时,它可直接“在”该另一元件、层、区域或组件“上”、直接“连接到”或者直接“结合到”该另一元件、层、区域或组件,或者可存在一个或多个中间元件、层、区域或组件。然而,“直接连接/直接结合”表示在没有中间组件的情况下,一个组件直接连接或结合到另一组件。同时,描述组件之间的关系的其他表述(诸如,“在……之间”、“直接在……之间”或“相邻”和“直接相邻”)可被类似地解释。此外,将理解,当元件或层被称为“在”两个元件或层“之间”时,它可以是两个元件或层之间的唯一元件或层,或者还可存在一个或多个中间元件或层。
在此使用的术语仅为了描述特定实施例目的,而不意在对本公开进行限制。除非上下文另有清楚地指示,否则如在此使用的,单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”、“具有”、“包含”时,表明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“和/或”包括相关联的所列项中的一个或多个的任何组合和全部组合。
如在此使用的,术语“基本上”、“约”、“近似”和类似术语用作近似的术语而不用作程度的术语,并且意在解释将由本领域普通技术人员认可的测量或计算的值的固有偏差。考虑与特定量的测量相关联的问题和误差(即,测量系统的限制)的测量,如在此使用的,“约”或“近似”包括陈述的值并且表示如本领域普通技术人员确定的特定值的可接受的偏差的范围内。例如,“约”可表示在一个或多个标准偏差内,或在陈述的值的±30%、±20%、±10%、±5%内。此外,在描述公开的实施例时“可”的使用表示“公开的一个或多个实施例”。如在此使用的,术语“使用”、“正在使用”和“被使用”可被认为与术语“利用”、“正在利用”和“被利用”同义。此外,术语“示例性”意在表示示例或说明。
当特定实施例可被不同地实现时,特定处理顺序可与描述的顺序不同地被执行。例如,两个连续描述的处理可基本上同时被执行或者以与描述的顺序相反的顺序被执行。
前述内容是示例实施例的说明,并不被解释为对其进行限制。虽然已经描述了一些示例实施例,但本领域的技术人员将容易地理解,在实质上不脱离示例实施例的新颖教导和优点的情况下,示例实施例中的许多修改是可行的。因此,所有这样的修改意在被包括在权利要求中定义的示例实施例的范围内。在权利要求中,装置加功能条款(means-plus-function clauses)意在覆盖在此被描述为执行陈述的功能的结构,并且不仅包括结构等同物而且包括等同结构。因此,将理解前述内容是示例实施例的说明,并不被解释为限于公开的具体实施例,对公开的示例实施例和其他示例实施例的修改意在被包括在所附权利要求的范围内。发明构思由所附权利要求和将被包括在其中的权利要求的等同物限定。

Claims (24)

1.一种固态驱动器(SSD)中的用于动态磨损均衡和负载重定向的方法,SSD包括一个或多个块,所述方法包括:
由控制器接收写入数据的请求;
由控制器计算SSD的块的易损性因子,其中,易损性因子使用从与第一存储器装置级相关联的第一元数据生成的第一参数和从与第二存储器装置级相关联的第二元数据生成的第二参数而被计算;
由控制器将所述块选择为用于接收写入数据的请求的目标块;
由控制器基于目标块的易损性因子来确定目标块的状态;
由控制器基于目标块的状态将数据写入目标块;以及
由控制器基于写入到目标块的数据来更新映射表。
2.根据权利要求1所述的方法,还包括:
当目标块的易损性因子大于预定阈值时,由控制器将数据写入副本块。
3.根据权利要求1所述的方法,其中,所述状态包括:健康状态、易受损状态或退役状态中的至少一个。
4.根据权利要求1所述的方法,其中,映射表包括将写入到目标块的数据的逻辑页号映射到写入到目标块的数据的物理页号的表。
5.根据权利要求1所述的方法,其中,基于目标块的易损性因子来选择目标块。
6.根据权利要求5所述的方法,其中,选择具有最小易损性因子的目标块。
7.根据权利要求1所述的方法,其中,使用从块级元数据生成的第一组参数和从驱动器级元数据生成的第二组参数来计算易损性因子。
8.根据权利要求7所述的方法,其中,块级元数据包括读取错误、写入错误或擦除错误中的至少一个。
9.根据权利要求7所述的方法,其中,驱动器级元数据包括页标识、块标识、时间戳、基于块的错误和驱动器日志数据中的一个或多个。
10.一种固态驱动器(SSD)系统,包括控制器和一个或多个块,其中,控制器被配置为:
接收写入数据的请求;
计算SSD的块的易损性因子,其中,易损性因子使用从与第一存储器装置级相关联的第一元数据生成的第一参数和从与第二存储器装置级相关联的第二元数据生成的第二参数而被计算;
将所述块选择为用于接收写入数据的请求的目标块;
基于目标块的易损性因子来确定目标块的状态;
基于目标块的状态将数据写入目标块;以及
基于写入到目标块的数据来更新映射表。
11.根据权利要求10所述的系统,其中,控制器还被配置为:
当目标块的易损性因子大于预定阈值时,将数据写入副本块。
12.根据权利要求10所述的系统,其中,所述状态包括:健康状态、易受损状态和退役状态中的至少一个。
13.根据权利要求10所述的系统,其中,基于目标块的易损性因子来选择目标块。
14.根据权利要求13所述的系统,其中,选择具有最小易损性因子的目标块。
15.根据权利要求10所述的系统,其中,使用从块级元数据生成的第一组参数和从驱动器级元数据生成的第二组参数来计算易损性因子。
16.根据权利要求15所述的系统,其中,块级元数据包括读取错误、写入错误或擦除错误中的至少一个。
17.根据权利要求15所述的系统,其中,驱动器级元数据包括页标识、块标识、时间戳、基于块的错误和驱动器日志数据中的一个或多个。
18.一种存储器系统内的用于动态磨损均衡和负载重定向的方法,存储器系统包括一个或多个存储器装置,所述方法包括:
由控制器接收写入数据的请求;
由控制器计算存储器装置的易损性因子,其中,易损性因子使用从与第一存储器装置级相关联的第一元数据生成的第一参数和从与第二存储器装置级相关联的第二元数据生成的第二参数而被计算;
由控制器基于目标装置的易损性因子将所述存储器装置选择为用于接收写入数据的请求的目标装置;以及
由控制器将写入数据的请求定向到目标装置。
19.根据权利要求18所述的方法,其中,所述存储器装置包括闪存芯片。
20.根据权利要求19所述的方法,其中,闪存芯片的易损性因子等于闪存芯片内的所有块的总和。
21.根据权利要求19所述的方法,其中,选择具有最小易损性因子的闪存芯片作为目标闪存芯片。
22.根据权利要求18所述的方法,其中,所述存储器装置包括SSD。
23.根据权利要求22所述的方法,其中,SSD的易损性因子等于SSD内的所有闪存芯片的总和。
24.根据权利要求22所述的方法,其中,选择具有最小易损性因子的SSD作为目标SSD。
CN202110116013.5A 2020-02-07 2021-01-28 用于动态磨损均衡和负载重定向的方法和固态驱动器系统 Active CN113312276B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062971773P 2020-02-07 2020-02-07
US62/971,773 2020-02-07
US16/843,823 2020-04-08
US16/843,823 US11275510B2 (en) 2020-02-07 2020-04-08 Systems and methods for storage device block-level failure prediction

Publications (2)

Publication Number Publication Date
CN113312276A CN113312276A (zh) 2021-08-27
CN113312276B true CN113312276B (zh) 2023-08-08

Family

ID=74550421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110116013.5A Active CN113312276B (zh) 2020-02-07 2021-01-28 用于动态磨损均衡和负载重定向的方法和固态驱动器系统

Country Status (5)

Country Link
US (1) US11275510B2 (zh)
EP (1) EP3862865B1 (zh)
JP (1) JP2021125267A (zh)
KR (1) KR20210101166A (zh)
CN (1) CN113312276B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220221852A1 (en) * 2021-01-14 2022-07-14 University Of Louisiana At Lafayette Method and architecture for embryonic hardware fault prediction and self-healing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
CN107562641A (zh) * 2017-07-11 2018-01-09 捷开通讯(深圳)有限公司 存储空间的均衡磨损方法、系统和装置
CN108701488A (zh) * 2015-12-01 2018-10-23 科内克斯实验室公司 用于在逻辑上去除非易失性存储器存储设备中的缺陷页的方法和装置
CN109783398A (zh) * 2019-01-18 2019-05-21 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7573773B2 (en) 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
WO2009124320A1 (en) * 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
US8838897B2 (en) 2011-06-29 2014-09-16 New Jersey Institute Of Technology Replicating tag entries for reliability enhancement in cache tag arrays
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US9471450B2 (en) 2013-03-07 2016-10-18 International Business Machines Corporation Reducing data loss in a computing storage environment
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9423970B2 (en) 2013-12-30 2016-08-23 Sandisk Technologies Llc Method and system for predicting block failure in a non-volatile memory
US20160042141A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Integrated assessment of needs in care management
US20170068467A1 (en) 2015-09-04 2017-03-09 HGST Netherlands B.V. Wear management for flash memory devices
US10365996B2 (en) 2016-03-24 2019-07-30 Advanced Micro Devices, Inc. Performance-aware and reliability-aware data placement for n-level heterogeneous memory systems
US10331537B2 (en) 2016-12-23 2019-06-25 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
US10621353B2 (en) 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
KR20180092715A (ko) 2017-02-10 2018-08-20 삼성전자주식회사 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치
US20180332012A1 (en) 2017-05-12 2018-11-15 International Business Machines Corporation Post-compilation configuration management
US10684902B2 (en) 2017-07-28 2020-06-16 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US11288116B2 (en) 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
US10791137B2 (en) 2018-03-14 2020-09-29 Synack, Inc. Risk assessment and remediation
US11042646B2 (en) 2018-08-13 2021-06-22 International Business Machines Corporation Selecting data storage based on data and storage classifications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
CN108701488A (zh) * 2015-12-01 2018-10-23 科内克斯实验室公司 用于在逻辑上去除非易失性存储器存储设备中的缺陷页的方法和装置
CN107562641A (zh) * 2017-07-11 2018-01-09 捷开通讯(深圳)有限公司 存储空间的均衡磨损方法、系统和装置
CN109783398A (zh) * 2019-01-18 2019-05-21 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法

Also Published As

Publication number Publication date
US20210247912A1 (en) 2021-08-12
US11275510B2 (en) 2022-03-15
CN113312276A (zh) 2021-08-27
EP3862865B1 (en) 2022-06-22
KR20210101166A (ko) 2021-08-18
JP2021125267A (ja) 2021-08-30
TW202147119A (zh) 2021-12-16
EP3862865A1 (en) 2021-08-11

Similar Documents

Publication Publication Date Title
US10635599B2 (en) Memory controller assisted address mapping
US8788876B2 (en) Stripe-based memory operation
US20170147499A1 (en) Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device
EP2570929B1 (en) Weave sequence counter for non-volatile memory systems
EP2920700B1 (en) Memory segment remapping to address fragmentation
US10262754B2 (en) Fine grained online remapping to handle memory errors
US8954647B2 (en) Systems and methods for redundantly storing metadata for non-volatile memory
WO2016069192A1 (en) Tracking intermix of writes and un-map commands across power cycles
US9323607B2 (en) Data recovery once ECC fails to correct the data
US20120324148A1 (en) System and method of protecting metadata from nand flash failures
CN112558860A (zh) 分布和读取数据的存储器系统及其操作方法
CN113312276B (zh) 用于动态磨损均衡和负载重定向的方法和固态驱动器系统
US20240143511A1 (en) Dynamically sized redundant write buffer with sector-based tracking
US11734093B2 (en) Storage device block-level failure prediction-based data placement
US20210042050A1 (en) Method and apparatus for rebuilding memory mapping tables
TWI836181B (zh) 進行動態磨損平衡及負載重定向之方法及固態驅動機系統
US11301380B2 (en) Sector-based tracking for a page cache

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